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

Работа с данными комбинированного типа (Record)

23.02.2011, 21:23. Показов 1290. Ответов 1
Метки нет (Все метки)

Здравствуйте! Помогите пожалусто написать програму.
ЗАДАНИЕ
Pascal
1
2
3
4
5
6
7
8
9
type
date= record
subject:array{1..5] of string[15];
mark: array{1..5] of integer;
    end;
studrec= record
name : string[10];
sub:date;
    end
Составить программу, которая будет печатать фамилии студентов и название предметов, из которых они получили неудовлетворительные оценки.

Фаил данных
-Student1
subject1
1
subject2
5
subject3
5
subject4
5
subject5
2
-Student2
subject1
1
subject2
4
subject3
5
subject4
5
subject5
3
-Student3
subject1
5
subject2
2
subject3
5
subject4
5
subject5
1
-Student4
subject1
5
subject2
5
subject3
5
subject4
1
subject5
5
-Student5
subject1
5
subject2
5
subject3
5
subject4
5
subject5
5

Вот что я написал. Но моя програvма лиш находит студентов которые получили неудовлетворительные оценки а придмет по которым они получили ети оценки не пишет, а нада! помогить пожалуйста!
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
Program TTT;
uses crt;
type date=record
        subject:array[1..5] of string[15];
        mark:array[1..5] of integer;
     end;
     studrec=record
          name:string[10];
          sub:date;
     end;
var student:array[1..8] of studrec;
    am1:array[1..8] of string;
    k,s,i,n:integer;
   min:string;
    dan:text;
    rez:text;
begin
    clrscr;
    assign(dan,'I:\Fleshka\Lab12\dan.txt'); reset(dan);
    assign(rez,'I:\Fleshka\Lab12\rez.txt'); rewrite(rez);
    writeln(rez,'studenty');  n:=0;
    for i:=1 to 8 do begin  s:=0;
        with student[i] do begin
     readln(dan,name);
            for k:=1 to 5 do begin
                with sub do  begin
    readln(dan,subject[k]);
     readln(dan,mark[k]);  end;
        if student[i].sub.mark[k]<3 then s:=s+1; end;
    if s=1 then begin n:=n+1; am1[n]:=student[i].name;
  writeln(rez,am1[n]); end;  end;   end;
 
close(rez);  end.
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.02.2011, 21:23
Ответы с готовыми решениями:

Работа с данными комбинированного типа
Распечатать фамилии детей данного детского сада, которые родились в определённом месяце; указать их...

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

Работа с типизированным файлом типа record. Вставить в центр файла еще запись
Создать типизированный файл. 1)ввести несколько записей.2)вставить запись после некоторой по...

Работа с данными типа множество.
15.Работа с данными типа множество: -Даны две символьные строки, содержащие только строчные...

1
Почетный модератор
64065 / 47477 / 32732
Регистрация: 18.05.2008
Сообщений: 115,185
09.03.2011, 17:30 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
Program TTT;
uses crt;
type date=record
          subject:array[1..5] of string[15];
          mark:array[1..5] of integer;
          end;
     studrec=record
             name:string[10];
             sub:date;
             end;
    { neud=record
          name:string[10];}
var student:array[1..8] of studrec;
    am1:array[1..8] of string;
    k,s,i,n,j:integer;
   min:string;
    dan:text;
    rez:text;
begin
    clrscr;
    assign(dan,'file1.txt'); reset(dan);
    assign(rez,'file2.txt'); rewrite(rez);
    writeln(rez,'studenty');
    n:=0;
    while not eof(dan) do
     begin
      n:=n+1;
      s:=0;
      with student[n] do
       begin
        readln(dan,name);
        for k:=1 to 5 do
         begin
           with sub do
            begin
             readln(dan,subject[k]);
             readln(dan,mark[k]);
            end;
           if sub.mark[k]<3 then s:=1;
         end;
        if s=1 then
         begin
          writeln(rez,name);
          for j:=1 to 5 do
          if sub.mark[j]<3 then writeln(rez, sub.subject[j]);
         end;
       end;
   end;
close(rez);
readln
end.
Я на своих файлах проверял, поправь.
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.03.2011, 17:30

Работа с данными типа множество
Задан некоторый набор товаров. Определить для каждого из товаров, какие из них имеются в каждом из...

Работа с данными типа множества
Дано множество содержащие строчные латинские буквы. Подсчитать сколько в этом множестве строчных...

Работа с данными типа множеств
Дано натуральное произвольное число, определить какие цифры входят в это число

Работа с данными типа множества
Помогите с выполнением данной задачи, пожалуйста Дано множество Х1, содержащее целые числа из...


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

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

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