Напишите программу,которая запрашивает натуральные числа и вычисляет их произведение до тех пор,пока не будет введено число 1. В конце работы программа должна напечатать найденное произведение.
// PascalABC.NET 3.1, сборка 1239 от 08.05.2016 begin var b:array[1..6,1..6] of integer:=( (19,21,23,25,27,29),(57,59,61,63,65,31), (55,81,83,85,67,33),(53,79,89,87,69,35), (51,77,75,73,71,37),(49,47,45,43,41,39)); var a:array[1..6,1..6] of integer; var k:=2; var k0,k1:integer; for var i:=1 to 6 do begin for var j:=1 to 6 do Print(b[i,j]); Writeln end; Writeln; repeat k0:=0; k1:=0; Writeln('k=',k); for var i:=1 to 6 do begin for var j:=1 to 6 do begin if (b[i,j] mod k) mod 2=0 then begin a[i,j]:=1; Inc(k1) end else begin a[i,j]:=0; Inc(k0) end; Print(a[i,j]) end; Writeln end; Writeln('k0=',k0,', k1=',k1); if k0<>k1 then Inc(k) until k0=k1; Writeln(NewLine,'k=',k) end.
Прикладываю исходник и скрин в приложении к ответу.
Несколько замечаний:
1. Большое количество комментариев внесено в код исключительно в учебных целях. В реальную программу переносить не рекомендуется - признак нехорошего тона.
2. У вас допущены синтаксические ошибки в двух последних циклах, а точнее - в операторах If, в которых стоит три условия (объединённых and), но нет ключевого слова "then" и последующих инструкций. Исправил.
3. Так же, автор вашей программы построил на мой взгляд нелогичную структуру алгоритма. Переменные min, min2 и min3, как я догадался, должны хранить три минимальных значения массива. А вот что происходит в вашей конструкции: первый цикл безошибочно находит наименьший элемент и записывает его в min, а последующие два цикла записывают в min2 и min3 первые попавшиеся(начиная с первого) элементы, если они больше min. Таким образом, нет никакой закономерности в том, что попадёт в эти переменные и сложно представить, для какой задачи потребовались бы такие случайности.
Одним из вариантов решения предлагаю изначально записывать в эти три переменные не значение первого элемента массива, а какое-то большое число, которое в массиве нам не встретится (например 100). Тогда цикл будет искать значения меньше 100 и перезаписывать им соответствующую переменную, пока не найдёт самое маленькое значение. В таком случае не очень стабильная переменная j нам так же не нужна, я её вычеркнул.
Вам отсылаю уже с учётом поправок, однако если вам требовалась именно первоначальная версия несмотря на её минусы, просто поправьте синтаксис в последних циклах (41 и 34 строчка на скрине) и пользуйтесь ей.
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota
Оформи подписку