Консультация № 138412
29.05.2008, 05:26
0.00 руб.
0 1 1
Здраствуйте.Уважаемые эксперты.Помогите мне пожалуйста с решением задач на массивы(я в них мало понимаю),которые у меня не получаются:

1)При заданных коэффициентах A1,A2,...,An и заданном значении X вычислить значение многочлена A1X+A2X^2+...+AnX^n (2,n - степени). Указание: использовать в цикле переменную, последовательные значения которой равны X,X^2,X^3,...,X^n (2,3,n - степени).
Элементы массива генерируются случайным образом в заданном диапазоне [a;b], a=-74, b=39.

2)Написать программу, которая вставляет последний элемент массива после первого отрицательного элемента этого же массива.
Элементы массива генерируются случайным образом в заданном диапазоне [a;b], a=-74, b=39.
Элементы массива (или массивов) выводятся в строку.
При решении всех задач использовать структурированный тип - массив.

3)Найдите номера минимального и максимального элементов в массиве A(n), попавших в отрезок [x.y]. Выполнить сортировку по возрастанию элементов, расположенных между минимальным и максимальным элементами.
Элементы массива генерируются случайным образом в заданном диапазоне [a;b], a=-74, b=39 и выводятся на экран. Результирующий массив выводятся в следующей строке. Исходная и результирующая матрицы сопровождается сооответствующими заголовками. Если в задаче используется двумерный массив, то исходная и результирующая матрица выводятся в виде таблиц.

4)Дана действительная матрица размера m*n, все элементы которой
различны. В каждой строке выбирается элемент с наименьшим зна-
чением. Затем среди этих чисел выбирается наибольшее. Указать
индексы элемента с найденным значением.
Элементы массива генерируются случайным образом в заданном диапазоне [a;b], a=-74, b=39 и выводятся на экран. Результирующий массив выводится в следующей строке.
Если в задаче используется двумерный массив, то исходная и результирующая матрица выводятся в виде таблиц.
Исходная и результирующая матрицы сопровождается сооответствующими заголовками.

5)Дана запись, в которой хранятся данные об учениках класса: фамилия, имя, отчество, адрес (улица, дом, квартира) и домашний телефон (есть он или нет).
- Вывести на экран фамилию, имя и адрес тех учеников, до кого нельзя дозвониться.
-Вывести и подсчитать количество всех учеников, которые имеют имя Маша.
Исходные данные содержат не менее 10 записей. Данные хранятся в типизированном файле INPUT.DAT (предусмотреть возможность добавления новых записей в файл).
В области модуля необходимо организовать пользовательский тип и переменную этого типа, а также соответствующие процедуры и функции для работы с записями. Результаты выводятся с соответствующими комментариями на экран и в текстовый файл OUTPUT.DAT.

Спасибо за внимание!

Обсуждение

давно
Профессор
401888
1232
30.05.2008, 08:11
общий
это ответ
Здравствуйте, RustyMetal!
Решение задачи 4 в приложении, приведены необходимые пояснения. Если по остальным, которые <font color=blue>В</font>ы почти решили, есть конкретные вопросы, задавайте на форуме или письмом. Решать их полностью совсем не хочется, т.к. один вопрос, один ответ.<p><fieldset style=‘background-color:#EFEFEF; width:80%; border:#777777 1px solid; padding:10px;‘ class=fieldset><font color=#777777><i>Пишем грамотно.</i>
-----
</font><font color=#777777 size=1><b>• Отредактировал: <a href=http://rusfaq.ru/info/user/18359 target=_blank>Николай Владимирович / Н.В.</a></b> (Профессор)
<b>• Дата редактирования:</b> 30.05.2008, 09:09 (MCK)</font></fieldset>

Приложение:
Задача 4. uses crt; const n=5; m=6; var a:array[1..n,1..m]of integer; mn:set of byte; {используем множество для контроля ввода неповторяющихся чисел} i,j,min,max,jmin,imax,jmax:integer; begin clrscr; mn:=[]; {пустое множество} randomize; writeln(‘Ishodnaia matrica:‘); for i:=1 to n do begin for j:=1 to m do begin repeat a[i,j]:=random(114)-74;{интервал [-74,39]} until not (a[i,j] in mn); {повторяем, пока очередное число не будет новым} include(mn,a[i,j]); {вставляем его во множество} write(a[i,j]:4); end; writeln; end; readln; max:=-maxint; {за максимальное принимаем самое маленькое число типа Integer} for i:=1 to n do begin min:=a[i,1];jmin:=1; for j:=1 to m do if a[i,j]<min then begin min:=a[i,j]; {находим минимальные в строке} jmin:=j; {определяем номер столбца} end; if min>max then begin max:=min; {находим макс среди мин} imax:=i; {номер строки} jmax:=jmin; {номер столбца} end; end; writeln(‘Maximalnyj element sredi minimalnyh=‘,max); writeln(‘Raspolozen v stroke ‘,imax,‘ v stolbce ‘,jmax); readln end.
Форма ответа