Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.05.2011, 23:20   #1
alexalisa
 
Регистрация: 21.04.2011
Сообщений: 8
По умолчанию Массив записей: процедура и/или функция

Имется задачка: Сведения об участниках конкурса содержат следующую информацию: фамилия, имя, адрес(город, улица, № дома, № квартиры), секция, набранный балл. Составить программу, которая считывает эти данные из текстового файла в массив записей (не менее 20-ти элементов). Составить процедуры и/или функции, которые позволяют: 1) найти средний балл по каждой секции 2) определить фамилии победителей по каждой секции 3) по каждому из городов определить фамилии участников, набравших наибольшие баллы (независимо от секции). Помогите уже 2 дня мучаюсь с этой программой, процедура вывода работает не до конца, не могу понять как нужно вычислять средний балл... Заранее огромное спасибо.
Код:
program p;
uses crt;
const n = 21;
type
   T_address=record
        gorod:string[11];
        ulica:string[11];
        dom:string[4];
        kv:string[4];
    end;
   T_conkurs= record
        fam: string[10];
        name: string[11];
        address: T_address;
        cekciya: string[9];
        ball:string[4];
  end;
var   inf:array[1..n] of T_conkurs;
      kol_zap:word;
      i, j, num:integer;

procedure Dannye_vvod;// процедура ввода из текстового файла
  var f:text;
     // i:word;
  begin
      i := 0;
      assign(f,'anketa.txt');
      reset(f);
      while not Eof(f) do
            begin
          i := i + 1;
            with inf[i] do
            readln(f,fam,name,address.gorod,address.ulica,address.dom,address.kv,cekciya,ball);
            end;
      kol_zap:=i;
      close(f);
  end;

procedure Dannye_vyvod; //процедура вывода на экран
  var i:integer;
  begin
  writeln(' Фамилия   Имя        Адрес                         Секция   Набранный балл');
  for i:=1 to kol_zap do
      begin
      with inf[i] do
      writeln(' ',fam,name,address.gorod,address.ulica,address.dom,address.kv,cekciya,ball);
      end;
  end;

procedure Sred_bal;
     begin
     for i := 1 to kol_zap - 1 do
     for j := i + 1 to kol_zap do
       if (inf[i].cekciya = inf[j].cekciya) then inf[i].cekciya := 'duplicate';
       //writeln('Результат:');

    for i := 1 to kol_zap do
     if inf[i].cekciya <> 'duplicate' then inc(num);
        writeln('В массиве ',num,' различных элементов:');

    for i := 1 to kol_zap do
    if inf[i].cekciya <> 'duplicate' then write(inf[i].cekciya,' ');


    if inf[i].cekciya = 'dublicate' then
    for

     end; 
begin
     clrscr;
     Dannye_vvod;
     Dannye_vyvod;
    Sred_bal;

end.
Вложения
Тип файла: txt anketa.txt (1.3 Кб, 118 просмотров)
alexalisa вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Что лучше процедура или функция??? VintProg Общие вопросы Delphi 34 17.08.2010 15:52
Нужна функция или процедура для того чтобы программа стала резидентной! star007 Помощь студентам 3 22.03.2010 08:59
Память, (что тяжелее:функция или процедура) WF7 Паскаль, Turbo Pascal, PascalABC.NET 4 08.06.2009 08:09
Процедура или функция, удаляющая окаймляющие пробелы в строке (Delphi) Аццкий прогер Помощь студентам 2 03.03.2009 04:12
SQL процедура вместо перебора записей XPAiN БД в Delphi 5 11.09.2008 13:59