Решение задачи №6 из главы 15
Primary tabs
Пользователь вводит целые числа в цикле. Запишите в массив целых чисел (из 3 элементов) все нечетные отрицательные. Как только массив будет заполнен, завершите цикл ввода новых значений пользователем и распечатайте полученный массив.
type // секция объявления типов
myArr = array[1..3] of integer; // массив из 3 элементов
var
a: myArr; // объявляем переменную типа myArr
i : integer;
begin
{ обходим первый раз массив,
значения которого ещё не инициализированы,
с целью присвоить значения элементам
}
for i:=low(a) to high(a) do
begin
writeln('vvedite element massiva nomer ', i, ':'); // пояснение для пользователя
readln(a[i]); // считываем элемент i массива 'a' из консоли
end;
writeln('elementi vvedennogo vami massiva:');
for i:=low(a) to high(a) do // обходим массив второй раз, теперь уже с целью вывода его значе
if (a[i] mod 2 =1 ) AND (a[i]<0)
then
write(a[i], ' ');
readln();
end. - Log in to post comments
- 2478 reads
vedro-compota
Sun, 11/29/2020 - 16:39
Permalink
for i:=low(a) to high(a) do--
-- сработает только 3 раза, а по условию задачи цикл ввода может быть вообще бесконечным (напр. если пользователь вводит только положительные значения).
Также сейчас запись в массив идет без проверки условия
_____________
матфак вгу и остальная классика =)
gani84
Sun, 12/13/2020 - 13:26
Permalink
Исправил
type // секция объявления типов myArr = array[1..3] of integer; // массив из 3 элементов var a: myArr; // объявляем переменную типа myArr i : integer; x : integer; begin //writeln('vvedite element massiva nomer ', a[i], ':'); i:=0; while true do begin if i = 3 then begin break; end; writeln('vvedite element massiva nomer ', i, ':'); readln(x); if (odd(x)) and (x < 0) then begin x:=a[i]; i:= i+1; end; end; readln(); end.vedro-compota
Sun, 12/13/2020 - 16:21
Permalink
while true do
-- перенести условие завершение в заголовок цикла.
_____________
матфак вгу и остальная классика =)