Помощь - Поиск - Пользователи - Календарь
Полная версия: Непонятка с файлами
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Vaso
Help!
для зачета остались две задачи кторые не могу решить. Хотя вроде простые
1) В файле содержатся сведения о студентах: Фамилия, пол , номер курса. Напечатать номер курса на котором наибольший процен мужчин, а также их фамилии.
2) Дан текстовый фаил F. удалить в каждой строке слова с наибольшей длиной. Результат занести в новый файл G.
С первой возникли проблемы: не могу написать процедуру для того чтобы раскидать список по номеру курса.
Помогите пожалуйста, а то срочно требуются решения . Я сам долго догоняю, а времени нет. Плизз!!! Завтра экзамен. Выручайте. blink.gif
klem4
Цитата
кторые не могу решить.


Значит попытки были, покажи что делал, исправим, подскажем.

зы

FAQ : Записи
FAQ : Файлы

+ Поиск yes2.gif
Vaso
Привет всем. Помощи больше не надо.
Первую программу написал, только с недочетами. например: завел массив из записей, что большой минус.
Но теперь понял как делать. Если кому-то пригодиться, то вот код моей программы.
Условие: Дан файл содержащий в себе сведения о студентах: фамилия, пол, курс. Определить на каком
курсе наибольший процен мужчин и выдать: номер курса, процент мужчин, фамилии студентов учащихся
на этом курсе мужского пола.
Код
Program max_boys;
          Type information=record
                      surname:string[20];
                       pol:string[1];
                       kurs:byte;
                       end;
Var F:file of information;
    stud: array [1..100] of information;
    k:information;
    p,l,x,i,n,o,j,boys,kol:byte;
    procent:array[1..5] of real;
    max_percent:real;
             Begin
                  Assign (F,'inform.txt');
                  reset (F);
                  writeln ('Spisok studentov :');
                  writeln ('N ',' ','surname':10,' ','pol':1,' ','kurs':1);
                  i:=0;
                  o:=0;
                        while not eof (F) do
                            begin
                                i:=i+1;
                                Read (F,stud[i]);
                                with stud[i] do
                                writeln (i,')',' ',surname:10,' ',pol:1,' ',kurs:1);
                             end;
                  for j:=1 to i do
                             begin
                                   for l:=i+1 to i-1 do
                                     begin
                                         if stud[j].kurs>stud[l].kurs then  begin
                                          k:=stud[j]; stud[j]:=stud[l]; stud[l]:=k;
                                                                                                             end;
                             end;
                                   for n:=1 to 5 do
                                        begin
                                            kol:=0;boys:=0;
                                                 for j:=1 to i do
                                                    if  stud[j].kurs=n then
                                                                                                                             begin
                                                                                                                            kol:=kol+1; if stud[j].pol='m' then
                                                                                                                               boys:=boys+1;
                                                                                                                                       end;
                               if kol>0 then
                                procent[n]:=(boys/kol*100);
                                   end;
                                 end;
                         max_percent:=procent[1];
                                for n:=1 to 5 do
                                     begin if procent[n]>=max_percent then
                                                 begin
                                                    max_percent:=procent[n];
                                                    p:=n;
                                                  end
                                                  else
                                      end;
              writeln ('nomer kursa: ',p,'   Procent male: ',max_percent:5:2,'    Spisok mugshin:');
                                     for j:=1 to i do
                                       if (stud[j].kurs=p) and (stud[j].pol='m') then
                                        begin
                                           o:=o+1;
                                           writeln (o,')',' ',stud[j].surname:10);
                                                 end;
                              END.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.