Программисты, помогите! Pascal abc или PascalABC. NET. Дан массив размером n×n, элементы...

0 голосов
86 просмотров

Программисты, помогите! Pascal abc или PascalABC. NET. Дан массив размером n×n, элементы которого целые числа. Для каждого столбца найти первый положительный элемент и записать данные в новый массив. При решении использовать двумерный массив.


Информатика (654k баллов) | 86 просмотров
0

Где брать предлагаете этот Pascal ABC? Разработчки в 2007 годы закрыли этот проект и перешли на PascalABC.NET.

0

Совершенное разные принципы программмирования, несовместимые с Pascal ABC. Круче, чем на Питоне. Не смущает?

0

Я так на днях написал одному здесь, потом его страдания полчаса не смолкали. Так что подумайте...

0

Я за язык Вас не тянул)). Ждите, нужно несколько минут.

Дано ответов: 2
0 голосов
Правильный ответ

PascalABC.NET 3.4.2, сборка 1847 от 28.10.2018

Внимание! Если программа не работает, обновите версию!

begin

 var n := ReadInteger('Количество строк/столбцов в массиве:');

 Writeln('*** Исходный массив ***');

 var a := MatrRandom(n, n, -99, 99);

 a.Println(4); Writeln(4 * a.ColCount * '-');

 var b := a.Cols.Select(row -> row.Where(t -> t > 0).First).ToArray;

 b.Println

end.


image
(654k баллов)
0

Различия? Ни одна строка кода в Pascal ABC не откомпилируется

0

Pascal ABC - это фактически интерпретатор Turbo Pascal для среды Windows, который был написан на Delphi.

0

Учителя информатики отправить на официальный сайт, который так и называется pascalabc.net - там на главной странице 7 презентаций о том, как нужно писать сейчас на Паскале )))

0

Конечно, если Вы при этом используете не язык PascalABC.NEt, а оставленный для совместимости Turbo/Ree Pascal

0

*Turbo/Free Pascal

0

Только это все равно, что купить BMW и ездить на нем по двору своего дома.

0 голосов

label next;

var a: array of array of integer;

b: array of integer;

i,j,n: integer;

begin

write('Введите  N: ');

readln(n);

setlength(a,n);

setlength(b,n);

for i:=0 to n-1 do setlength(a[i],n);

for i:=0 to n-1 do

for j:=0 to n-1 do a[i,j]:=60-random(100);

writeln('Полученный массив: ');

for i:=0 to n-1 do begin writeln;

for j:=0 to n-1 do write(a[i,j],' ');

end;

i:=0;

j:=0;

while (i

while (j

if (a[i,j]>0) then begin

b[i]:=a[i,j];

j:=0;

goto next;

end else inc(j);

end;

next: inc(i);

end;

writeln;

writeln('Отобранные данные: ');

for i:=0 to n-1 do write(b[i],' ');

readln;

end.

(552 баллов)
0

Пришлось задействовать метку

0

label next - инициализирует метку с названием "next". Блок с метками, как var для переменных

0

goto next - перейди на метку "next"

0

next: - место метки "next"

0

Всегда пожалуйста