Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Object Pascal: кроссплатформенные технологии > работа с записями


Автор: SHraybikus 30.10.2008, 10:17
эта программа Составляет список учебной группы, включающей 25 человек. Для каждого учащегося указать дату рождения, год поступления в техникум, курс, группу, оценки каждого года обучения.  Совокупность записей объединить в массив.
Распечатать анкетные данные студентов, получивших в последнюю сессию оценки 2.

но мне нужно как то ее изменить на: 
список учебной группы, включающей 25 человек. Для каждого учащегося указать дату рождения, год поступления в техникум, курс, группу, оценки каждого года обучения.  Совокупность записей объединить в массив.  только уже :
Вывести список студентов женского пола.

 smile 


Код
Program teh; uses crt;
const
k=5;
k11=10;
k0=2;
k1=4;
k2=6;
k3=8;
type
dan = record
f:string[15];
im:string[10];
day:01..31;
mon:01..12;
jar,datp:1900..2100;
g:string[7];
oc0:array [1..k0,1..k11] of 2..5;
oc1:array [1..k1,1..k11] of 2..5;
oc2:array [1..k2,1..k11] of 2..5;
oc3:array [1..k3,1..k11] of 2..5;
end;
var u:array [1..k] of dan;
i,j,j1,n1,n2,gg,ggg:integer;
procedure Input(gg:integer; var i,ggg:integer);
var q,q1:1..10;
begin
Writeln ('Фамилия <-| Имя <-| год рождения <-| пост-ил <-| группа <-|');
with U[i] do
begin
READln (f);
READln (im);
READln (day,mon,jar);
READln (datp);
READln (g);
end;
Writeln ('Введите по 10 оценок (через Enter) за каждый семестр, за все время обучения');
gg:=gg-U[i].datp;
ggg:=gg;
If gg=0 then
begin
for q:=1 to k0 do
for q1:=1 to k11 do
read (u[i].oc0[q,q1]);
readln;
end;
If gg=1 then
begin
for q:=1 to k1 do
for q1:=1 to k11 do
read (u[i].oc1[q,q1]);
readln;
end;
If gg=2 then
begin
for q:=1 to k2 do
for q1:=1 to k11 do
read (u[i].oc2[q,q1]);
readln;
end;
If gg=3 then
begin
for q:=1 to k3 do
for q1:=1 to k11 do
read (u[i].oc1[q,q1]);
readln;
end;
end;
procedure Output(var i:integer);
begin
with u[i] do
Writeln (f:13,im:10,day:10,' ',mon,' ',jar,datp:10,g:13);
end;
begin
clrscr;
Write ('Введите нынешний год -');
Readln (gg);
Writeln;
for i:=1 to k do
Input(gg,I,ggg);
Writeln ('   Фамилия           Имя         рожден       пост-ил    группа ');
For i:=1 to k do
begin
n1:=0;
if ggg=0 then
begin
for j:=k0 to k0 do
for j1:=1 to k11 do
begin
if u[i].oc0[j,j1]=2 then
n1:=n1+1
end;
end;
if ggg=1 then
begin
for j:=k1 to k1 do
for j1:=1 to k11 do
begin
if u[i].oc1[j,j1]=2 then
n1:=n1+1
end;
end;
if ggg=2 then
begin
for j:=k2 to k2 do
for j1:=1 to k11 do
begin
if u[i].oc2[j,j1]=2 then
n1:=n1+1
end;
end;
if ggg=3 then
begin
for j:=k3 to k3 do
for j1:=1 to k11 do
begin
if u[i].oc3[j,j1]=2 then
n1:=n1+1
end;
end;
if n1=1 then
output(i);
end;
readkey;
end.

Автор: vladimir74 30.10.2008, 10:38
во первый - используй форматировку текста, так читать просто невозможно
во вторых - пример у тебя уже есть, тебе надо просто поменять условие вывода.
Вобщем ищи где проверяется на оценку 2 и заменяй ее на своих девушек... 

Автор: SHraybikus 30.10.2008, 16:02
да- и походу прийдется перед записями сделать вопрос - пол - жен. или муж. smile

Добавлено через 14 минут и 50 секунд
Цитата(vladimir74 @ 30.10.2008,  10:38)
во первый - используй форматировку текста, так читать просто невозможно
во вторых - пример у тебя уже есть, тебе надо просто поменять условие вывода.
Вобщем ищи где проверяется на оценку 2 и заменяй ее на своих девушек...

 

а если так делать - то прийдется женские имена выписывать все?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)