Форум программистов, компьютерный форум, киберфорум
Free Pascal
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 01.12.2014
Сообщений: 48
1

Вывести на экран ФИО тех студентов две оценки у которых 3

04.02.2015, 18:33. Показов 1254. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Составить список из 15 студентов, для каждого указать ФИО и оценки с 4 экзаменов. Составить программу , которая будет вводить данные для каждого студента заносить их в список и делать обработку (Вывести на экран ФИО тех студентов две оценки у которых 3)

Добавлено через 2 минуты
Прощу прощение за ошибку в описании темы , там не двоих с тройками, а тех у кого 2 оценки с экзаменов тройки.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.02.2015, 18:33
Ответы с готовыми решениями:

Вывести на экран фамилии тех студентов, рост которых больше 170см
В ЭВМ вводятся фамилии и рост студентов первого курса. Вывести на экран фамилии тех студентов, рост...

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

Вывести на экран фамилии тех студентов, которые не выполнили и не сдали хотя бы одну работу
Program lab3; uses Crt; type vedomost=record nz_pr:string; nom_gr:string;

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

3
охотник
1011 / 535 / 650
Регистрация: 29.09.2014
Сообщений: 1,083
04.02.2015, 19:46 2
Лучший ответ Сообщение было отмечено Gleb_KK как решение

Решение

Кликните здесь для просмотра всего текста
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
uses crt;
const n=5;{15 количество студентов}
      nazvanie:array[1..4] of string=('математика','физика','химия','информатика');
type otmetki=array[1..4] of byte;
     student=record
        name:string;
        ot:otmetki;
       end;
     ukaz=^s;
     s=record
        inf:student;
        next:ukaz;
       end;
var u,hv,tmp:ukaz;
    i,j,k:integer;
procedure vivod(head:ukaz);
var tmp:ukaz;
    i:integer;
begin
 write('+');
 for i:=1 to 5 do write('-----------+');writeln;
 write('|  фамилия  |');
 for i:=1 to 4 do write(nazvanie[i]:11,'|');writeln;
 write('+');
 for i:=1 to 5 do write('-----------+');writeln;
 tmp:=head;
 while tmp<>nil do
  begin
   with tmp^.inf do
    begin
     write('|',name:11,'|');
     for i:=1 to 4 do write(ot[i]:11,'|');writeln;
    end;
  tmp:=tmp^.next
  end;
 write('+');
 for i:=1 to 5 do write('-----------+');writeln;
end;
 
begin
 clrscr;
 u:=nil;
 new(u);
 u^.next:=nil;
 with u^.inf do
  begin
   writeln('1 студент');
   write('Фамилия: ');readln(name);
   for i:=1 to 4 do
    begin
     write(nazvanie[i],': ');
     readln(ot[i]);
    end
  end;
 clrscr;
 hv:=u;
 for i:=2 to n do
  begin
   new(tmp);
   hv^.next:=tmp;
   tmp^.next:=nil;
   with tmp^.inf do
    begin
     writeln(i,' студент');
     write('Фамилия: ');readln(name);
     for j:=1 to 4 do
      begin
       write(nazvanie[j],': ');readln(ot[j]);
      end;
    end;
   hv:=tmp;
   clrscr;
  end;
 writeln('все студенты');
 vivod(u);
 writeln('студенты у которых за экзамены две оценки: 3');
 tmp:=u;
 while tmp<>nil do
  begin
   k:=0;
   with tmp^.inf do
    begin
     for i:=1 to 4 do if ot[i]=3 then inc(k);
     if k=2 then writeln(name)
    end;
   tmp:=tmp^.next
  end;
 readln
end.
1
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
32835 / 21172 / 8148
Регистрация: 22.10.2011
Сообщений: 36,431
Записей в блоге: 8
04.02.2015, 20:17 3
Долго будем писать велосипеды? Есть же TFPGList<Record>, все проще:

stud.pp
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
{$mode delphi}
unit stud;
 
interface
 
const
  numMarks = 4;
type
  tmarks = array[1 .. numMarks] of byte;
  tstudent =
  record
    fio : string;
    marks : tmarks;
 
    class operator Equal(a, b : tstudent) : boolean;
    procedure Print;
  end;
 
implementation
 
class operator tstudent.Equal(a, b : tstudent) : boolean;
begin
  result := a.fio = b.fio;
end;
 
procedure tstudent.Print;
var m : integer;
begin
  write(fio:12); for m in marks do write(m:3);
  writeln;
end;
 
end.
test.pp
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
{$mode objfpc}
uses fgl, crt, stud;
 
type
  student_list = specialize TFpgList<tstudent>;
 
var
  lst : student_list;
  student : tstudent;
  more : char;
  i, count : integer;
 
begin
  lst := student_list.Create;
 
  repeat
    write('fio: '); readln(student.fio);
    for i := 1 to numMarks do
    begin
      write('  mark #', i, ': '); readln(student.marks[i]);
    end;
    lst.Add(student);
 
    write('continue? (y/n)'); readln(more);
  until upcase(more) = 'N';
 
  writeln('all students:');
  for student in lst do student.Print;
 
  writeln('selected:');
  for student in lst do
    with student do
    begin
      count := 0;
      for i in marks do inc(count, ord(i = 3));
      if count > 1 then student.Print;
    end;
 
  lst.Free;
end.
Цитата Сообщение от Gleb_KK Посмотреть сообщение
тех у кого 2 оценки с экзаменов тройки
Ровно 2, или не меньше двух? Мой вариант показывает 2 и больше...
2
0 / 0 / 0
Регистрация: 01.12.2014
Сообщений: 48
05.02.2015, 16:53  [ТС] 4
volvo, сказали равно 2 , но и за этот вариант спасибо большое, мало ли !

Добавлено через 20 часов 32 минуты
volvo, а как можно сделать такую же программу, только с меню и процедурами?
Меню такого типа :
1)Init (инициализация);
2)Add_pbeg(добавить в начало списка);
3)Del_pbeg(удалить в начале списка);
4)List(показать список);
5)size(сколько элементов);
6)clear(очистить список);
7)Find(Это и есть та часть , которая ищет студентов с 2 тройками)
8)Exit;
0
05.02.2015, 16:53
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.02.2015, 16:53
Помогаю со студенческими работами здесь

получить в типизированном файле фио и номер зачётки тех студентов которые пробежали за допустимое время
пожалуйста решите мне задачу...это итоговая работа.очень срочно нужна. в текстовом файле...

Вывести на экран анкетные данные студентов, фамилии которых начинаются на букву Б
Составить список, содержащий сведения об N студентах. Для каждого учащегося указать: - фамилия; -...

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

Используя файл, вывести на екран фамилии тех студентов, у которых все оценки 5
прошу извинить за глупый вопрос , но все-таки.... Возможно ли решить задачу : сформировать...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru