Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.06.2008, 23:16   #1
mpegable
Пользователь
 
Регистрация: 03.05.2008
Сообщений: 13
По умолчанию Помогите решить задачу на записи (Паскаль)

Описать переменную "студент", содержащую: имя, фамилию, отчество студента, название учебного заведения, номер группы. Создать список студентов (N>10). Определить фамилии студентов, учащихся в одной и той же группе, в одном и том же заведении.

Вот моя прога:

const N = 11;
type
Stud = record
f, i, o: string;
vyz: string;
grup: byte;
end;
var
mas: array[1..N] of Stud;
i, j,p: byte;s:string;
b: boolean;
begin
for i := 1 to N do begin
write('Family[',i,']: '); readln(s);
mas[i].f:=s;
write('Name[',i,']: '); readln(s);
mas[i].i:=s;
write('Otchestvo[',i,']: '); readln(s);
mas[i].o:=s;
write('VYZ[',i,']: '); readln(s);
mas[i].vyz:=s;
write('Gruppa[',i,']: '); readln(p);
mas[i].grup:=p;
end;
writeln;writeln('Result: ');writeln;b:=false;
i := 1;
while i<n do
begin
j := i+1;
while j<=n do
begin
if (mas[i].vyz = mas[j].vyz)and
(mas[j].vyz <> '')and(mas[i].grup = mas[j].grup) then
begin
for i:=1 to n do begin
write(mas[i].vyz,' ', mas[i].f);
b:=true end;
end;
j:=j+1
end;
i:=i+1
end;
if not b then writeln('result is not found...');
readln
end.

Но она почему-то выдает не весь список, а только первое совпадение.

заранее благодарен
mpegable вне форума Ответить с цитированием
Старый 16.06.2008, 23:55   #2
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Вот немного переделал, кое-что изменил, просто я так привык писать, если что, обратно переделаешь, главное сейчас нормально работает.
Код:
uses crt;
const N = 3;
type
Stud = record
f, i, o: string;
vyz: string;
grup: byte;
end;
var
mas: array[1..N] of Stud;
i,j,k: byte;
s:string;
begin
clrscr;
for i := 1 to N do begin
writeln('Student ',i);
write('Family: '); readln(mas[i].f);
write('Name: '); readln(mas[i].i);
write('Otchestvo: '); readln(mas[i].o);
write('VYZ: '); readln(mas[i].vyz);
write('Gruppa: '); readln(mas[i].grup);
end;
writeln;
writeln('Result: ');
writeln;
k:=0;
for i:=1 to n do
for j:=1 to n do
if (mas[i].vyz = mas[j].vyz)and(mas[i].grup=mas[j].grup)and(i<>j) then
   begin
     writeln(mas[i].f);
	   k:=k+1;
   end;
if k=0 then writeln('Takih studentov net!');	 
readln
end.
puporev вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите решить задачу(Паскаль) KocT9 Помощь студентам 1 02.06.2008 22:22
Помогите решить задачу на файлы (Паскаль) mpegable Помощь студентам 1 02.06.2008 18:08
Помогите решить: задача на записи (Паскаль) mpegable Помощь студентам 1 25.05.2008 17:44
Помогите, пожалуйста, решить задачу на Turbo Pascal. Тема: записи. Morrigan13 Помощь студентам 1 28.03.2008 21:09