1. Заголовок темы должен быть информативным. В противном случае тема удаляется ... 2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения. 3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали! 4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора). 5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM! 6. Одна тема - один вопрос (задача) 7.Проверяйте программы перед тем, как разместить их на форуме!!! 8.Спрашивайте и отвечайте четко и по существу!!!
Работа с одномерными массивами, Помогите решить задачку!!!
Помогите решить задачку!!! Задать массив состоящий из 10 целых чисел. Найти максимальный элемент массива. В 3 раза увеличить значение отрицательных элементов массива. Найти кол-во ненулевых элементов массива. ПОЖАЛУЙСТА.
ПРИМЕЧАНИЕ: Решить её надо с помощью процедур.
М
Сообщения объеденены. А на будущее : существует кнопка ПРАВКА klem4
Не знаю правильно или нет но у меня вот, что получилось:
type massiv = array[1..10] of integer; {Задаем массив из 10 чисел} var a: massiv; i,cnt,max: integer;
procedure OutMass(mas: massiv); {вывод массива} begin write('Массив: '); for i:=1 to 10 do write(a[i], ' '); end;
procedure FindMax(mas : massiv); {находим макс. эл-т} begin max:=a[1]; for i:=2 to 10 do if a[i] > max then max:=a[i]; writeln('Максимальный элемент: ', max); end;
procedure IncOtric(mas: massiv); {в 3 раза увеличиваем значение отриц. эл-в} begin for i:=1 to 10 do if a[i] < 0 then a[i]:=3*a[i]; end;
procedure NeNull(mas: massiv); {счит. кол-во ненулевых эл-в} begin cnt:=0; for i:=1 to 10 do if mas[i] <> 0 then inc(cnt); writeln('Кол-во ненулевых элементов: ', cnt); end; {--// Основная программа //--} begin for i:=1 to 10 do begin write('A[',i,']: '); readln(a[i]); end; OutMass(a); {выводим массив} FindMax(a); {ищем и выводим максимальный эл-т} IncOtric(a); {увелич. отриц. эл-ты} NeNull(a); {считаем ненулевые эл-ты} OutMass(a); {заново выводим массив} end.
To: Fang & virt Не "возводим в куб", а "увеличиваем в 3 раза" !!!
procedure IncOtric(var mas: massiv); begin for i:=1 to 10 do if mas[i] < 0 then mas[i]:=3*mas[i]; end;
P.S. Кстати, Fang, твоя программа будет вообще что-то непотребное делать... Объясни мне, например, зачем ты передаешь в процедуру параметр, а работаешь НЕ с ним, а с глобальным массивом?
procedure OutMass(mas: massiv); {вывод массива} begin write('Массив: '); for i:=1 to 10 do write(mas[i], ' '); end;
procedure FindMax(mas : massiv); {находим макс. эл-т} begin max:=mas[1]; for i:=2 to 10 do if mas[i] > max then max:=mas[i]; writeln('Максимальный элемент: ', max); end;
Будь внимательнее в следующий раз. А лучше НЕ позволять таким ошибкам появляться (возложи это на компилятор)... Если переменная
var a: massiv;
будет определена непосредственно после описания всех процедур и функций, перед основным блоком программы, то такие ошибки будут найдены при компиляции...