Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/9: Рейтинг темы: голосов - 9, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 24.05.2017
Сообщений: 10

Описание записи в модуле Pascal

03.11.2019, 21:54. Показов 1891. Ответов 2

Студворк — интернет-сервис помощи студентам
Здравствуйте ,нужна помощь с модулями в Pascal . Нужно написать программу в которой используется запись(причём необходимая для работы программы информация (типа массив записей) описана только в основной программе ) и модуль,который обрабатывает эту запись ,подскажите, как сделать . Заранее спасибо.

P.s. Описание записи должно быть в основной программе ,как сделать прогу + модуль(в котором уже описан массив записей знаю ).
Программа
Кликните здесь для просмотра всего текста
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
 
uses
 modul1_A,
 crt;
type formadocumenta=record                        // записи
   nomer:string [3];                              // номер
   fio: string[45];                               // ФИО
   pol: char;                                     // пол
   nomgr:string[5];                               // номер группы
   math: real;                                    // оценка за математику
   prog: real;                                    // оценка за програмирование
   hist: real;                                    // оценка за история
   end;
var
 vvod: text ;                                             // файл ,где хранятся данные                                    // файл ,куда будут сохранятся данные                                         // счётчик для тех у кого 4,5
 i: integer ;
 student: array  [1..b ] of  formadocumenta;                                        // средняя оценка
begin
 assign(vvod,'C:\FPC\3.0.4\vvod.txt');          // объяявление файла ввода
 reset(vvod);                                      // открытие файла ввода
 for i:=1 to b do                                 // алгоритм для записи
   begin
   writeln ('Cведения о ',i,' студенте ');        //строки для формы
   writeln ('   Форма документа ');
   writeln ('   Итоги сессии ') ;
   writeln ('Номер студента');
   readln(vvod,student[i].nomer);                 // чтение номера студента из файла
   writeln(student[i].nomer);                     // вывод этого номера
   writeln('Фамиилия Имя Отчество ');
    readln(vvod,student[i].fio);                  // чтение ФИО студента из файла
    writeln(student[i].fio);                      // вывод этого ФИО
     writeln('Пол');
    readln(vvod,student[i].pol);                  // чтени пола из файла
    writeln(student[i].pol);                      // вывод пола студента
    writeln('Номер группы');
    readln(vvod,student[i].nomgr);                // чтение номера группы из файла
    writeln(student[i].nomgr);                    // вывод номера группы
    writeln('Результаты сессии') ;
    writeln('Математика')  ;
    readln(vvod,student[i].math);                 // чтение оценки по математике
    writeln(student[i].math:1:0);                 // вывод оценки по математике
    writeln('Программирование');
    readln(vvod,student[i].prog);                 // чтение оценки по программированию
    writeln(student[i].prog:1:0);                 // вывод этой оценки
    writeln('История');
    readln(vvod,student[i].hist);                 // чтение оценки по истории
    writeln(student[i].hist:1:0);                 // вывод этой оценки
   end;
 close(vvod);                                    // закрытие файла с информацией
 procent;
 SR_mark;
 ZAP;
   end.


Модуль

Кликните здесь для просмотра всего текста
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
 
unit modul1_A;
interface
 
const
b =5;
var
vivod :text;
sro: array [1..b] of real;
 z:real ;
procedure procent ;
procedure SR_MARK ;
procedure ZAP ;
implementation
procedure procent ;
 
var i,
    q:integer;
begin
 q:=0 ;
 for i:=1 to b do                                // алгоритм поиска оценки
  begin
   if student [i].math >=4 then
    if student[i].prog >=4 then
     if student[i].hist >=4 then
        q:=q+1;
         end;
         z:= (q*100)/b;
   end;
 procedure SR_MARK ;
 
  var
  i:integer;
  x,
  y :byte;
  d : real;
  begin
  for i:=1 to b do
   begin   
   sro[i]:= (student[i].math+student[i].prog+student[i].hist)/3;          // алгоритм сортировки
   end;
  for x := 1 to b-1 do
    for y := 1 to b-x do
    begin
      if sro[y] < sro[y+1] then
      begin
        d := sro[y];
        sro[y] := sro[y+1];
        sro[y+1] := d;
      end;
    end;
    end;
 procedure ZAP ;
 var
 i :integer ;
  begin
  assign(vivod, 'C:\FPC\3.0.4\vivod.txt');  // объявление файла вывода
  rewrite(vivod);
  writeln (vivod ,'Проценнт студентов сдавших ссесию на  4,5 ',z:1:2,'%' );
  writeln (vivod , 'Список студентов отсортированных по средней оценке ' );
   for i:=1 to b do
   writeln(vivod,student[i].fio ,' ',sro[i]:2:2 ) ;                      // запись  людей отсортированных по средней оценке в файл
   close (vivod);
   end;
   end.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
03.11.2019, 21:54
Ответы с готовыми решениями:

Описание двух классов в одном модуле
Привет, всем. Короче сразу к теме. В модуле уже описан класс(пусть даже формы). Куда следует описывать другие классы и объекты(потоки,...

Заменить описание записи - с анонса (начальный текст записи) на Дескрипшн записи
На пробном сайте http://djeysonborn2016.ru/ на главной странице отображаются записи (те что сразу под спойлером). У записей есть заголовок...

Описание в Pascal протокол обмена с прибором.
Здравствуйте! Подскажите пожалуйста, как программно описать в Pascal протокол обмена с прибором (ASTM стандарт). Заранее...

2
Модератор
Эксперт Pascal/DelphiЭксперт NIX
 Аватар для bormant
7816 / 4635 / 2837
Регистрация: 22.11.2013
Сообщений: 13,159
Записей в блоге: 1
03.11.2019, 23:08
Лучший ответ Сообщение было отмечено max2252 как решение

Решение

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

Добавлено через 3 минуты
А в том, что тип записи в модуле, а переменная-массив записей в программе, никакой беды нет:
хоть с открытыми массивами работайте,
хоть с описанным в модуле типом массива записей,
хоть с указателем на запись.
1
 Аватар для vlisp
1067 / 988 / 153
Регистрация: 10.08.2015
Сообщений: 5,393
04.11.2019, 03:49
Цитата Сообщение от max2252 Посмотреть сообщение
Описание записи должно быть в основной программе
кто сказал?
в модуль нужно выносить шаблонные процедуры и структуры данных. например инфо о студенте - тип, список инфо о студентах - тип, процедуры принимающие как параметр имя файла и ссылку на список инфо о студентах для загрузки из файла и т.д.

а в основной программе в эти процедуры подкидывать разные данные

у тебя же каша, неописуемая ни при каком желании.

для начала разберись, что такое параметры и как их передавать ( по значению или по ссылке)

у тебя должна быть программа вида:

Code
1
2
3
4
5
6
7
если спис_студ = загрузить("ИМЯ_ФАЙЛА")
   тогда
      распечатать(спис_студ)
      со = найти_средн_оцен(спис_студ)
      печать(со)
      ...
    кон_тогда
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
04.11.2019, 03:49
Помогаю со студенческими работами здесь

составить описание активных клавиш Turbo Pascal 7.0
составить описание активных клавиш Turbo Pascal 7.0 пример другой задачи такого типа но на псевдо коде program primer; ...

AD: Добавление записи в описание компьютера
Здравствуйте, У меня вопрос по Active Directory. Допустим есть некий компьютер test и надо этот компьютер завести в домен на имя...

Запись, описание типа записи
Здание: название, назначение, площадь (метры квадратные) Критерии: здания которые занимают площадь меньше 0.1 гектара

Описание класса или записи
Верно ли объявление interface type TVector=record v:array of Double; procedure Create(n:Integer); class operator...

Записи и типизированные файлы. Описание структуры с именем Price
Описать структуру с именем PRICE, содержащую следующие поля: - название товара; - название магазина, в котором продается товар; -...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru