0 / 0 / 0
Регистрация: 27.08.2016
Сообщений: 75
1

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

28.11.2016, 16:59. Показов 985. Ответов 4
Метки нет (Все метки)

Как сделать чтобы эта программа брала данные из файла и выводила их в другой файл?

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
uses
   crt;
 
const
   n = 3;
 
type
   FName = record                        // Представление полного имени в виде записи
      Name, Surname, SecondName: string;
   end;
   
   student = record
      FullName: FName;                   // ФИО
      Group: byte;                       // Номер группы
      course: 1..4;                      // Курс
      marks: array [1..4]  of byte;      // Оценки
      dd: 1..31;                         // День
      mm: 1..12;                         // Месяц
      yy: integer;                       // Год
      Eyy: 1900..2016;                   // Год поступления
   End;
var
   i: integer;
   s: Student;
   Students: array [0..n-1] of Student;  // Массив студентов
 
begin
   ClrScr;
   for i:= 0 to n-1 do begin
       with s do begin
         Writeln(' * Заполнение данных ', i+1,'-ого учащегося * ');
         Writeln('Имя:');
         readln(Fullname.Name);
         
         Writeln('Фамилия:');
         readln(Fullname.Surname);
         
         Writeln('Отчество:');
         readln(Fullname.SecondName);
         
         Writeln('Группа:');
         readln(Group);
      
         Writeln('Дата рожднния:');
         Write('   День: ');
         readln(dd);
      
         Write('   Месяц: ');
         readln(mm);
      
         Write('   Год: ');
         readln(yy);
      
         Writeln('Курс:');
         readln(course);
         
         Writeln('Оценки:');
         readln(marks[1], marks[2], marks[3], marks[4]);
         c :=chr(0);
      end;
      Students[i]:= s;
      ClrScr;
   end;
   ClrScr;
   writeln('ФИО':30,' | Группа | ', 'Дата рожднния':10,' | ', 'Курс':2,' | Оценки');
   for i:= 0 to n-1 do begin
      s:= Students[i];
      if (s.marks[1] + s.marks[2] + s.marks[3] + s.marks[4]) / 4 >= 5 then
         writeln((s.Fullname.Name + ' ' + s.Fullname.Surname + ' ' + s.Fullname.SecondName):30,' | ',
                 s.Group:6 ,' | ',
                 (inttostr(s.dd) + '/' + inttostr(s.mm) + '/' + inttostr(s.yy)):13,' | ',
                 inttostr(s.course):4 ,' | ',
                 s.marks[1],' ',s.marks[2],' ',s.marks[3],' ',s.marks[4]);
   end;
end.
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.11.2016, 16:59
Ответы с готовыми решениями:

Как сделать так, чтобы программа брала файл не по полному пути, а из собственной папки?
У меня есть Ole контейнер, и CheckBox К ним код: procedure TForm1.ComboBox1Change(Sender:...

Как сделать так, чтобы эта часть брала любое число из рандома?
Кое-как сделал программу на файлы. Было условие задачи: "Дан файл вещественных чисел. Определить...

Имеется задача. Преобразовать её, чтобы она читала данные из файла, и выводила результат в файл
program stipendia; uses CRT; const max=30; type TStud=record fam:string; oc: arrayof...

Как сделать чтобы программа выводила разные числа
Как сделать чтобы программа выводила разные символы?=)

4
Почетный модератор
64236 / 47537 / 32738
Регистрация: 18.05.2008
Сообщений: 115,182
28.11.2016, 17:01 2
Цитата Сообщение от DarkOfDragon Посмотреть сообщение
чтобы эта программа брала данные из файла
Из какого, где он?
0
0 / 0 / 0
Регистрация: 27.08.2016
Сообщений: 75
28.11.2016, 17:11  [ТС] 3
Новый текстовый документ.txt
0
Почетный модератор
64236 / 47537 / 32738
Регистрация: 18.05.2008
Сообщений: 115,182
28.11.2016, 17:51 4
Что-то Ваш код не бьет с файлом. У Вас 4 оценки, а в файле 9 разбитых на 2 сессии. Да и курса там нет.
0
0 / 0 / 0
Регистрация: 27.08.2016
Сообщений: 75
28.11.2016, 18:16  [ТС] 5
А если так?

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
uses
   crt;
 
const
   n = 3;
 
type
   FName = record                        
      Name, Surname, SecondName: string;
   end;
   
   student = record
      FullName: FName;                                          
      course: 1..4;                      
      marks: array [1..9]  of byte;     
      dd: 1..31;                         
      mm: 1..12;                         
      yy: integer;                      
      Eyy: 1900..2016;                  
   End;
var
   i: integer;
   s: Student;
   Students: array [0..n-1] of Student;  
 
begin
   ClrScr;
   for i:= 0 to n-1 do begin
       with s do begin
         Writeln(' * Заполнение данных ', i+1,'-ого учащегося * ');
         Writeln('Имя:');
         readln(Fullname.Name);
         
         Writeln('Фамилия:');
         readln(Fullname.Surname);
         
         Writeln('Отчество:');
         readln(Fullname.SecondName);
         
         Writeln('Группа:');
         readln(Group);
      
         Writeln('Дата рожднния:');
         Write('   День: ');
         readln(dd);
      
         Write('   Месяц: ');
         readln(mm);
      
         Write('   Год: ');
         readln(yy);
      
         
         Writeln('Оценки:');
         readln(marks[1], marks[2], marks[3], marks[4],marks[5], marks[6], marks[7], marks[8], marks[9] );
         c :=chr(0);
      end;
      Students[i]:= s;
      ClrScr;
   end;
   ClrScr;
   writeln('ФИО':30,' | ', 'Дата рожднния':10,' | Оценки');
   for i:= 0 to n-1 do begin
      s:= Students[i];
      if (s.marks[1] + s.marks[2] + s.marks[3] + s.marks[4] + s.marks[5] + s.marks[6] + s.marks[7] + s.marks[8]+ s.marks[8]) /
       4 >= 5 then
         writeln((s.Fullname.Name + ' ' + s.Fullname.Surname + ' ' + s.Fullname.SecondName):30,' | ',
                 s.Group:6 ,' | ',
                 (inttostr(s.dd) + '/' + inttostr(s.mm) + '/' + inttostr(s.yy)):13,' | ',
                 s.marks[1],' ',s.marks[2],' ',s.marks[3],' ',s.marks[4],' ',marks[5],' ',marks[6],' ',marks[7],' ',marks[8],' ',marks[9]);
   end;
end.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.11.2016, 18:16
Помогаю со студенческими работами здесь

Как сделать, чтобы в ответе программа выводила измененный массив?
Дан массив из целых чисел А(5 х 5). Заменить максимальный элемент каждой строки на...

Как сделать, так чтобы программа выводила наименование цвета, как здесь?
http://colors.aeio.ru/color/fffffe Я создал базу из 1002 цветов но это вообще не то. Я подгрузил...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru