Program n1; const n=20; var a: array[1..n] of integer; i,kn,ko,kp: integer; function max(a,b,c: integer): string; begin max:=' '; if (a>b) and (a>c) then max:='0 больше' else if (b>c) and (b>a) then max:='отрицательных больше' else if (c>a) and (c>b) then max:='положительных больше' else if (a=c) and (c=b) then max:='количество всех элементов одинаковое' else if a=b then max:='0 и отрицательных поровну' else if b=c then max:='положительных и отрицательных поровну' else if a=c then max:='0 и положительных поровну' else max:='ошибка'; end; begin randomize; write('исходный массив: '); kn:=0; kp:=0; ko:=0; for i:=1 to n do begin a[i]:=random(3)-1; write(a[i],' '); if a[i]>0 then kp:=kp+1 else if a[i]<0 then ko:=ko+1 else kn:=kn+1; end; writeln; write(max(kn,ko,kp)); end.
PascalABC.NET 3.2, сборка 1399 от 08.03.2017 Внимание! Если программа не работает, обновите версию!
type Uch=record fam,nam:string; ball:integer end; begin var U:=new Uch[40]; // Ввод данных (до 40), окончание- пустой ввод var i:=0; repeat var a:=ReadlnString('Ученик '+(i+1).ToString+':').ToWords; if a.Count=0 then break; U[i].fam:=a[0]; U[i].nam:=a[1]; U[i].ball:=integer.Parse(a[2]); i+=1 until i=40; SetLength(U,i); // массив отрегулирован под реальное кол-во // поиск Writeln('1 - поиск по фамилии и имени;'); Writeln('2 - поиск по оценке;'); Writeln('3 - поиск учеников с лучшей оценкой;'); Writeln('иной символ - завершение'); repeat var c:=ReadlnChar('Ваш выбор:'); case c of '1':begin var s:=ReadlnString('Фамилия и имя:').ToWords; var found:=false; for var j:=0 to U.Length-1 do if (U[j].fam=s[0]) and (U[j].nam=s[1]) then begin Writeln('Отметка ',U[j].ball); found:=true; break end; if not found then Writeln('Нет такого ученика') end; '2':begin var k:=ReadlnInteger('Оценка:'); var found:=false; for var j:=0 to U.Length-1 do if U[j].ball=k then begin Writeln(U[j].fam,' ',U[j].nam); found:=true; end; if not found then Writeln('Нет такого ученика') end; '3':begin var m:=U.Select(x->x.ball).Max; for var j:=0 to U.Length-1 do if U[j].ball=m then Writeln(U[j].fam,' ',U[j].nam); end; else break end; until false; приходите еще!') end.
Пример Ученик 1: Иванов Петр 4 Ученик 2: Петров Иван 5 Ученик 3: Висечкин Николай 3 Ученик 4: Зотова Марина 4 Ученик 5: Любимов Павел 5 Ученик 6: Козлова Елена 4 Ученик 7: 1 - поиск по фамилии и имени; 2 - поиск по оценке; 3 - поиск учеников с лучшей оценкой; иной символ - завершение Ваш выбор: 3 Петров Иван Любимов Павел Ваш выбор: * приходите еще!
const n=20;
var a: array[1..n] of integer;
i,kn,ko,kp: integer;
function max(a,b,c: integer): string;
begin
max:=' ';
if (a>b) and (a>c) then max:='0 больше'
else if (b>c) and (b>a) then max:='отрицательных больше'
else if (c>a) and (c>b) then max:='положительных больше'
else if (a=c) and (c=b) then max:='количество всех элементов одинаковое'
else if a=b then max:='0 и отрицательных поровну'
else if b=c then max:='положительных и отрицательных поровну'
else if a=c then max:='0 и положительных поровну'
else max:='ошибка';
end;
begin
randomize;
write('исходный массив: ');
kn:=0;
kp:=0;
ko:=0;
for i:=1 to n do
begin
a[i]:=random(3)-1;
write(a[i],' ');
if a[i]>0 then kp:=kp+1
else if a[i]<0 then ko:=ko+1
else kn:=kn+1;
end;
writeln;
write(max(kn,ko,kp));
end.
Внимание! Если программа не работает, обновите версию!
type
Uch=record
fam,nam:string;
ball:integer
end;
begin
var U:=new Uch[40];
// Ввод данных (до 40), окончание- пустой ввод
var i:=0;
repeat
var a:=ReadlnString('Ученик '+(i+1).ToString+':').ToWords;
if a.Count=0 then break;
U[i].fam:=a[0]; U[i].nam:=a[1]; U[i].ball:=integer.Parse(a[2]);
i+=1
until i=40;
SetLength(U,i); // массив отрегулирован под реальное кол-во
// поиск
Writeln('1 - поиск по фамилии и имени;');
Writeln('2 - поиск по оценке;');
Writeln('3 - поиск учеников с лучшей оценкой;');
Writeln('иной символ - завершение');
repeat
var c:=ReadlnChar('Ваш выбор:');
case c of
'1':begin
var s:=ReadlnString('Фамилия и имя:').ToWords;
var found:=false;
for var j:=0 to U.Length-1 do
if (U[j].fam=s[0]) and (U[j].nam=s[1]) then begin
Writeln('Отметка ',U[j].ball);
found:=true;
break
end;
if not found then Writeln('Нет такого ученика')
end;
'2':begin
var k:=ReadlnInteger('Оценка:');
var found:=false;
for var j:=0 to U.Length-1 do
if U[j].ball=k then begin
Writeln(U[j].fam,' ',U[j].nam);
found:=true;
end;
if not found then Writeln('Нет такого ученика')
end;
'3':begin
var m:=U.Select(x->x.ball).Max;
for var j:=0 to U.Length-1 do
if U[j].ball=m then Writeln(U[j].fam,' ',U[j].nam);
end;
else break
end;
until false;
приходите еще!')
end.
Пример
Ученик 1: Иванов Петр 4
Ученик 2: Петров Иван 5
Ученик 3: Висечкин Николай 3
Ученик 4: Зотова Марина 4
Ученик 5: Любимов Павел 5
Ученик 6: Козлова Елена 4
Ученик 7:
1 - поиск по фамилии и имени;
2 - поиск по оценке;
3 - поиск учеников с лучшей оценкой;
иной символ - завершение
Ваш выбор: 3
Петров Иван
Любимов Павел
Ваш выбор: *
приходите еще!