Форум программистов, компьютерный форум, киберфорум
Turbo Pascal
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
25 / 25 / 38
Регистрация: 21.10.2013
Сообщений: 79
1

Очередь (FIFO): студенты, чьи фамилии начинаются с буквы "Б"

08.02.2014, 20:17. Просмотров 1292. Ответов 3
Метки нет (Все метки)

Очередь (FIFO)
Все студенты, чьи фамилии начинаются с буквы "Б"
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
program lab3;
type student=record
fam,name,group:string[20];
year:integer;
sr:real;
pstud=^dstud;
dstud=record
s:student;
p:psud;
end;
var stud:student;
f,g:text;
st:string;
prosedure get_string(st:string;var s:student);
var kod;integer;
begin
with s do begin
fam:=copy(st,1,pos('',st)-1);
delete(st,1,pos('',st));
name:=copy(st,1,pos('',st)-1);
delete(st,1,pos('',st));
group:=copy(st,1,pos('',st)-1);
delete(st,1,pos('',st));
val9copy(st,1,pos('',st)-1),year,kod);
delete(st,1,pos('',st));
val(st,sr,kod)
end;
end;
  {âñïîìàãàòåëüíàÿ ïðîöåäóðà äëÿ âûâîäà çàãîëîâêà â ôàéë}
 procedure put_header(header:string);
 begin
 writeln(g,header);
 writeln(g,'|----------------------------------------------');
 writeln(g,'|   ôàìèëèÿ   |    èìÿ    |ãðóïïà | ã.ð  | ñ.ð '):
 writeln(g,'|----------------------------------------------');
 end;
 {âñïîìàãàòåëüíàÿ ïðîöåäóðà äëÿ âûâîäà ñòðîêè â ôàéë}
  procedure put_string(s:string);
  begin
  with s do
  writeln(g,'|',fam:11,'|',name:9,'|',group:10,'|',year:6,'|',sr:6:1,'|');
  end;
  {âñïîìàãàòåëüíàÿ ïðîöåäóðà äëÿ âûâîäà ïîñëåäíèõ äàííûõ â ôàèë}
 procedure put_sub;
 begin
 writeln(g,'|---------------------------------------------');
 writeln(g);
 end;
 {ðàáîòà ñ î÷åðåäüþ}
 procedure FIFO;
 var pBegin1,pbegin,pEnd,Help,:pstud;
 begin
 reset(f);
{Íà÷àëüíîå ôîðìèðîâàíèå}
new(pBegin);
pBegin^.p:=nil;
readln(f,st);get_string(st,stud);
pBegin^.s:=stud;
pEnd:=pBegin;
{Äîáàâëåíèå äàííûõ}
while not eof(f) do
begin
readln(f,st);get_string(st,stud);
new(pHelp);
pHelp^.p:=nil;
pHelp^.s:=stud;
pEnd^.p:=pHelp;
pEnd:=pHelp;
end;
pBegin1:=pBegin;
{Èçâëå÷åíèå âñåõ äàííûõ}
put_header('Èñõîäíûå äàííûå äëÿ î÷åðåäè:');
repeat
stud:=pBegin^.s;
put_string(stud);
pBegin:=pBegin^.p until
pBegin=nil;
put_sub;
{Èçâëå÷åíèå äàííûõ ïî óñëîâèþ è óäàëåíèå î÷åðåäè}
pBegin:=pBegin1;
put_header('Ñòóäåíòû, ÷üè ôàìèëèè íà÷èíàþòñÿ ñ áóêâû "Á:');
repeat
stud:=pBegin^.s;
if stud.fam[1]='Á' then put_string(stud);
pHelp:=pBegin;
pBegin:=pBegin^.p;
dispose(pHelp)
until pBegin=nil;
put_sub
end;
{Ãëàâíàÿ ïðîãðàììà}
begin
assign(g,'result.txt');
{$i-}append(g);{$i+} if ioresult <> 0 then rewrite(g);
 assign(f,'data.txt');
FIFO;
close(f);close(g); writeln('Ok')
 end.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.02.2014, 20:17
Ответы с готовыми решениями:

Напечатать список студентов, фамилии которых начинаются с буквы "А"
Напечатать список студентов, фамилии которых начинаются с буквы &quot;А&quot; и их оценки за последнюю...

Вывести всех студентов, чьи имена начинаются с буквы "А"
Сформировать стек, содержащий данные по студентам в следующем виде: &quot;Фамилия Имя Группа ГР RS&quot;, где...

Вывести фамилии и имена студентов, чьи имена начинаются на букву "б"
известны фамилии,адреса и телефоны 25 человек. Найти фамилии и адреса людей, чей телефон начинается...

Структуры. Распечатать список студентов фамилии которых начинаются с буквы "К"
Распечатать список студентов фамилии которых начинаются с буквы К. Заранее спасибо :)

3
161 / 122 / 85
Регистрация: 16.10.2013
Сообщений: 1,738
09.02.2014, 10:45 2
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
program lab;
uses crt;
type
    dt=record
        fam:string[14];
        nam:string[14];
        grp:string[10];
        grd:integer;
        ray:array[1..5] of integer;
        end;
    pDat=^data;
    data=record
        dat:dt;
        nxt:pDat;
        end;
procedure add(var pV:pDat);
begin
with pV^.dat do
    begin
    write('fam: ');
    readln(fam);
    write('nam: ');
    readln(nam);
    write('grp: ');
    readln(grp);
    write('grd: ');
    readln(grd);
    write('ray 1: ');
    readln(ray[1]);
    write('ray 2: ');
    readln(ray[2]);
    write('ray 3: ');
    readln(ray[3]);
    write('ray 4: ');
    readln(ray[4]);
    write('ray 5: ');
    readln(ray[5]);
    end;
end;
procedure shw(var pV:pDat; n:integer);
var
    sr:real;
begin
if n=0 then
begin
with pV^.dat do
    begin
    sr:=(ray[1]+ray[2]+ray[3]+ray[4]+ray[5])/5;
    writeln('|',fam:10,'|',nam:10,'|',grp:5,'|',grd:5,'|',sr:5:1,'|');
    end
end
       else
begin
with pV^.dat do
    if fam[1]='B' then 
    begin
    sr:=(ray[1]+ray[2]+ray[3]+ray[4]+ray[5])/5;
    writeln('|',fam:10,'|',nam:10,'|',grp:5,'|',grd:5,'|',sr:5:1,'|');
    end;
end;
end;
var
    pB,pE,pA,pBS:pDat;
    i,k:integer;
begin
write('Vvedite kol-vo zapisey : ');
readln(k);
clrscr;
new(pB);
pB^.nxt:=nil;
add(pB);
pE:=pB;
for i:=1 to k-1 do
    begin
    new(pA);
    pA^.nxt:=nil;
    pE^.nxt:=pA;
    pE:=pA;
    add(pA);
    end;
pBS:=pB;
writeln('+-------------All list------------------+');
writeln('|    Fam   |   Nam    | Grp | Grd | Sr  |');
writeln('|----------+----------+-----+-----+-----|');
while pB<>nil do
    begin
    shw(pB,0);
    pB:=pB^.nxt;
    end;
writeln('+---------------------------------------+');
pB:=pBS;
writeln;writeln;
writeln('+---------------------------------------+');
writeln('| SELECT * FROM STUDENTS WHERE FAM[1]=B |');
writeln('+---------------------------------------+');
writeln('|    Fam   |   Nam    | Grp | Grd | Sr  |');
writeln('|----------+----------+-----+-----+-----|');
while pB<>nil do
    begin
    shw(pB,1);
    pA:=pB;
    pB:=pB^.nxt;
    dispose(pA);
    end;
writeln('+---------------------------------------+');
readln;
end.
Я кажись догадываюсь чья это лаба)
Если что, программу нужно запускать в турбо паскале и вводить все на английском)
1
0 / 0 / 1
Регистрация: 15.01.2016
Сообщений: 22
09.03.2016, 22:04 3
dimabubyakin, Скажите пожалуйста что такое ray?
0
161 / 122 / 85
Регистрация: 16.10.2013
Сообщений: 1,738
10.03.2016, 12:28 4
Стульнев Олег, рейтинг)
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.03.2016, 12:28

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Найти список телефонов сотрудников, чьи фамилии начинаются с заданной буквы
Здравствуйте, мне необходимо доработать код. Мой код ищет фамилии по первой букве,а мне нужно,чтобы...

Вывести в консоль фамилии, которые начинаются с буквы "С" из документа Student.txt
C# вывести в консоль фамилии, которые начинаются с буквы &quot;С&quot; из документа Student.txt написать...

Сколько разных "слов" можно получить из слова "АБРАКАДАБРА"? Сколько из них начинаются с буквы "K"? В скольких из них обе буквы "Б" стоят рядом?
Сколько разных &quot;слов&quot; можно получить из слова &quot;АБРАКАДАБРА&quot;? Сколько из них начинаются с буквы &quot;K&quot;?...

Вывести данные в табличной форме для тех студентов, чьи имена начинаются с "А ".
Вот програмка Она вычисляет тех кто родился в феврале. А надо переделать так чтобы...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.