Другие языки программирования и технологии
Как составить программные коды на Паскаль к этой задаче?
Имеется массив А из N произвольных чисел - А(N), среди которых есть положительные, отрицательные и равные нулю. Составить программу, решающую задачу в соответствии с вариантом. а) Напечатать все числа из очереди, квадрат которых превышает 7, но меньше 50. Например, если А = {2, 4, –3, 3, 5, –2, 8}, результат: числа 4, –3, 3, 5. б) Найти номер последнего отрицательного элемента в последовательности. Например, если А = { 2, 4, –3, 0, 5, –2, 5}, результат: 6 (число –2). в) Складывать числа до встречи 0. Напечатать сумму. Снова суммировать до 0, напечатать новую сумму и т.д. до конца массива. Например, если А = { 2, 4, 0, –6, 5, –2, 0, 7}, результат: 2 + 4 = 6 и –6 + 5 – 2 = –3 и 7. г) Найти максимальное и минимальное числа. Напечатать те элементы массива, которые в массиве находятся между ними. Так, если А = { 2, 4, –3, 0, 2, 5, –2}, результат: –3, 0, 2, 5 (max = 5, min = –3). д) Найти максимальное и минимальное нечетные числа и их среднее арифметическое. Так, если А = { 8, 4, –2, 6, 2, 7, –5}, результат: 7 и –5 и (7–5)/2 = 1. е) Найти произведение элементов кратных трем. Например, если А = {2, 4, 9, 2, 6, –3 , 0}, результат: 9*6*(–3) = –162.
каждый вариант - это 2 действия, в чем конкретно у Вас проблема?
sum := 0;
product : = 1;
imax := 1;
imin := 1;
maxOdd := -10000;
minOdd := 10000;
for i:=1 to N do
begin
//вариант а
if (sqr(A[ i ]) > 7) and (sqr(A[ i ]) < 50) then
wrileln(A[ i ]);
//вариант б
if (A[ i ] < 0) then
negativ = A[ i ];
//вариант в
if (A[ i ] <> 0) then
sum := sum + A[ i ]
else
begin
writeln(sum);
sum := 0;
end;
//вариант г
if (A[ i ] > max) then
imax := i;
if (A[ i ] < min) then
imin = i;
//вариант д
if (A[ i ] mod 2 = 1) and (A[ i ] > maxOdd) then
maxOdd := A[ i ];
if (A[ i ] mod 2 = 1) and (A[ i ] < minOdd) then
minOdd := A[ i ];
//вариант е
if (A[ i ] mod 3 = 0) then
product := product*A[ i ];
end;
//ответ к варианту б
writeln(negativ);
//ответ к варианту г
if (imin > imax) then
for i:=imax to imin do
write(A[ i ])
else
for i:=imin to imax do
write(A[ i ]);
//ответ к варианту д
writeln((maxOdd+minOdd)/2);
//ответ к варианту e
writeln(product);
P.S. можно дополнить пояснениями каждый вывод информации на экран, чтобы не было путаницы.
sum := 0;
product : = 1;
imax := 1;
imin := 1;
maxOdd := -10000;
minOdd := 10000;
for i:=1 to N do
begin
//вариант а
if (sqr(A[ i ]) > 7) and (sqr(A[ i ]) < 50) then
wrileln(A[ i ]);
//вариант б
if (A[ i ] < 0) then
negativ = A[ i ];
//вариант в
if (A[ i ] <> 0) then
sum := sum + A[ i ]
else
begin
writeln(sum);
sum := 0;
end;
//вариант г
if (A[ i ] > max) then
imax := i;
if (A[ i ] < min) then
imin = i;
//вариант д
if (A[ i ] mod 2 = 1) and (A[ i ] > maxOdd) then
maxOdd := A[ i ];
if (A[ i ] mod 2 = 1) and (A[ i ] < minOdd) then
minOdd := A[ i ];
//вариант е
if (A[ i ] mod 3 = 0) then
product := product*A[ i ];
end;
//ответ к варианту б
writeln(negativ);
//ответ к варианту г
if (imin > imax) then
for i:=imax to imin do
write(A[ i ])
else
for i:=imin to imax do
write(A[ i ]);
//ответ к варианту д
writeln((maxOdd+minOdd)/2);
//ответ к варианту e
writeln(product);
P.S. можно дополнить пояснениями каждый вывод информации на экран, чтобы не было путаницы.
стучи в агент
Похожие вопросы
- Пожалуйста проверьте, правильно ли составлен программный код, выходит ошибка "Индекс находится вне границы массива
- Турбо-паскаль. Пожалуйста, напишите программный код!...=)
- Программа-эта и есть программный код тоесть программный код является программой
- Напишите программный код для урока информатики 11 класса.
- Помогите с одномерным массивом. Напишите код на Паскале.
- помогите переписать код с паскаля на c++
- Напишите программу на языке Паскаль для решения задачи:
- Помогите, СРОЧНО! Нужен код на паскале
- Кто знает очень сложные задачи по информатике, для программы Паскаль?? ? Напишите несколько задач...
- Исправьте мне программный код в visual Basiсе пожалуйста!