Вы не указали как хранятся данные о студентах и как осуществляется ввод. Попробуйте так, хотя я уже давно в Паскале не писала.
program pr1;
procedure CreateMass(var str:mass; n:integer); var i:integer; begin for i:=1 to n do begin write('Введите имя учащегося: '); readln(str[i]) end end;
procedure SearchN (str:mass; n:integer); var i, j, s1, s2:integer; b:boolean; begin b:=false; j:=1; while (j <= (n-1)) and (not b) do begin for i:=j+1 to n do begin if str[j]=str[i] then begin b:=true; s1:=i; s2:=j end end; j:=j+1 end; if (not b) then writeln('Нет двух студентов с одинаковыми именами.') else writeln('Студенты с одинаковыми именами - ',str[s1], ' находятся в массиве под номерами ', s1, ' и ', s2, '.') end;
type mass = array [1..n] of string; const n = 10; var str:mass; begin CreateMass(str, n); SearchN(str, n) end.
Const n=7; type V=array[1..n] of real; procedure mReplace(t:real;var a:V;var k:integer); var i:integer; begin k:=0; for i:=1 to n do if a[i]<t then begin a[i]:=t; Inc(k) end end;
var T:real; i,k1,k2:integer; P,C:V; begin Write('Введите значение T: '); Read(T); Writeln('Введите элементы массива P'); for i:=1 to n do Read(P[i]); Writeln('Введите элементы массива C'); for i:=1 to n do Read(C[i]); mReplace(T,P,k1); mReplace(T,C,k2); if k1>k2 then begin Writeln('Измененнный массив Р'); for i:=1 to n do Write(P[i],' ') end else if k2>k1 then begin Writeln('Измененнный массив C'); for i:=1 to n do Write(C[i],' ') end else Writeln('Число замен в массивах равно ',k1) end.
Тестовое решение: Введите значение T: 0.005 Введите элементы массива P 0.001 1.54 -2.75 0.002 -0.1 1.2 -0.47 Введите элементы массива C -5.74 0.0001 4.1 7.24 -1.5 2.9 0.004 Измененнный массив Р 0.005 1.54 0.005 0.005 0.005 1.2 0.005
Вы не указали как хранятся данные о студентах и как осуществляется ввод. Попробуйте так, хотя я уже давно в Паскале не писала.
program pr1;
procedure CreateMass(var str:mass; n:integer);
var i:integer;
begin
for i:=1 to n do begin
write('Введите имя учащегося: ');
readln(str[i])
end
end;
procedure SearchN (str:mass; n:integer);
var i, j, s1, s2:integer;
b:boolean;
begin
b:=false;
j:=1;
while (j <= (n-1)) and (not b) do
begin
for i:=j+1 to n do
begin
if str[j]=str[i] then
begin
b:=true;
s1:=i;
s2:=j
end
end;
j:=j+1
end;
if (not b) then writeln('Нет двух студентов с одинаковыми именами.') else
writeln('Студенты с одинаковыми именами - ',str[s1], ' находятся в массиве под номерами ', s1, ' и ', s2, '.')
end;
type mass = array [1..n] of string;
const n = 10;
var str:mass;
begin
CreateMass(str, n);
SearchN(str, n)
end.