Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Как сделать что бы при вводе одного названия группы показывало людей с оценками 3(все оценки 3) а при другом названии аналогично только из другой группы.Чтение произвести из файла

86K
26 января 2013 года
coder94
5 / / 26.01.2013
Код:
program lab2;
uses Crt;

type stud=record
     lastname:string[15];
     byear:integer;
     group:string[10];

     algebra:integer;
     istoria:integer;
     fizika:integer;
     himia:integer;
     geometri:integer;

     end;

var f:text; st:stud;  gr:string;  sm1:string; sm2:string;

begin

    clrscr;
    assign(f,'student.txt');
    rewrite(f);

    {Student Ivanov}
    st.lastname:='Ivanov';
    writeln(f,'Name:',st.lastname);
    st.byear:=2012-1994;
    writeln(f,'Age:',st.byear);
    st.group:='SM.12.1';
    writeln(f,'Group:',st.group);
    st.algebra:=4;
    writeln(f,'Algebra: ',st.algebra);
    st.istoria:=4;
    writeln(f,'Istoria: ',st.istoria);
    st.fizika:=5;
    writeln(f,'Fizika: ',st.fizika);
    st.geometri:=5;
    writeln(f,'Geometry: ',st.geometri);
    st.himia:=5;
    writeln(f,'Himia: ',st.himia);

    {Student Petrov}
    writeln(f);
    st.lastname:='Petrov';
    writeln(f,'Name:',st.lastname);
    st.byear:=2012-1993;
    writeln(f,'Age:',st.byear);
    st.group:='SM.12.1';
    writeln(f,'Group:',st.group);
    st.algebra:=3;
    writeln(f,'Algebra: ',st.algebra);
    st.istoria:=4;
    writeln(f,'Istoria: ',st.istoria);
    st.fizika:=3;
    writeln(f,'Fizika: ',st.fizika);
    st.geometri:=5;
    writeln(f,'Geometry: ',st.geometri);
    st.himia:=5;
    writeln(f,'Himia: ',st.himia);

    {Student Mirnik}
    writeln(f);
    st.lastname:='Murnik';
    writeln(f,'Name:',st.lastname);
    st.byear:=2012-1994;
    writeln(f,'Age:',st.byear);
    st.group:='SM.12.2';
    writeln(f,'Group:',st.group);
    st.algebra:=3;
    writeln(f,'Algebra: ',st.algebra);
    st.istoria:=3;
    writeln(f,'Istoria: ',st.istoria);
    st.istoria:=3;
    writeln(f,'Fizika: ',st.fizika);
    st.geometri:=3;
    writeln(f,'Geometry: ',st.geometri);
    st.himia:=3;
    writeln(f,'Himia: ',st.himia);

    {Student Norni}
    writeln(f);
    st.lastname:='Norni';
    writeln(f,'Name:',st.lastname);
    st.byear:=2012-1991;
    writeln(f,'Age:',st.byear);
    st.group:='SM.12.2';
    writeln(f,'Group:',st.group);
    st.algebra:=3;
    writeln(f,'Algebra: ',st.algebra);
    st.istoria:=3;
    writeln(f,'Istoria: ',st.istoria);
    st.istoria:=3;
    writeln(f,'Fizika: ',st.fizika);
    st.geometri:=5;
    writeln(f,'Geometry: ',st.geometri);
    st.himia:=3;
    writeln(f,'Himia: ',st.himia);

    close(f);

    sm1:='SM.12.1'; sm2:='SM.12.2';

    writeln('Write group');
    readln(gr);
    if gr=sm1 then do
    while not eof(f) do begin
    if st.

    readkey();
end.
465
26 января 2013 года
QWERYTY
595 / / 25.03.2012
"if gr=sm1 then do // зачем тут do, паскаль такой причудливый?
while not eof(f) do begin
if st."

Чёто я смысла не понял. eof всегда будет false.
Нужно открыть фаил для чтения с помощью Reset
465
26 января 2013 года
QWERYTY
595 / / 25.03.2012
Вот накидал самый лобовой вариант, времени нет придумывать всякие изящные решения:
Код:
program Project1;

{$APPTYPE CONSOLE}

//uses
 // SysUtils;

type
  stud = record
         lastname: string[15];
         byear: integer;
         group: string[10];
         algebra: integer;
         istoria: integer;
         fizika: integer;
         himia: integer;
         geometri: integer;
         end;


var
f: TextFile;
st: stud;
gr, sm1, sm2, NameStr, AgeStr, GrStr, AlgStr, IstStr, FizStr, GeomStr , HimStr, a: string;
i: integer;


begin
 // try
    { TODO -oUser -cConsole Main : Insert code here }
  // clrscr;

    AssignFile(f,'C:\student.txt');
    Rewrite(f);

    {Student Ivanov}
    st.lastname:='Ivanov';
    writeln(f,'Name:',st.lastname);
    st.byear:=2012-1994;
    writeln(f,'Age:',st.byear);
    st.group:='SM.12.1';
    writeln(f,'Group:',st.group);
    st.algebra:=4;
    writeln(f,'Algebra: ',st.algebra);
    st.istoria:=4;
    writeln(f,'Istoria: ',st.istoria);
    st.fizika:=5;
    writeln(f,'Fizika: ',st.fizika);
    st.geometri:=5;
    writeln(f,'Geometry: ',st.geometri);
    st.himia:=5;
    writeln(f,'Himia: ',st.himia);

    {Student Petrov}
    writeln(f);
    st.lastname:='Petrov';
    writeln(f,'Name:',st.lastname);
    st.byear:=2012-1993;
    writeln(f,'Age:',st.byear);
    st.group:='SM.12.1';
    writeln(f,'Group:',st.group);
    st.algebra:=3;
    writeln(f,'Algebra: ',st.algebra);
    st.istoria:=4;
    writeln(f,'Istoria: ',st.istoria);
    st.fizika:=3;
    writeln(f,'Fizika: ',st.fizika);
    st.geometri:=5;
    writeln(f,'Geometry: ',st.geometri);
    st.himia:=5;
    writeln(f,'Himia: ',st.himia);

    {Student Mirnik}
    writeln(f);
    st.lastname:='Murnik';
    writeln(f,'Name:',st.lastname);
    st.byear:=2012-1994;
    writeln(f,'Age:',st.byear);
    st.group:='SM.12.2';
    writeln(f,'Group:',st.group);
    st.algebra:=3;
    writeln(f,'Algebra: ',st.algebra);
    st.istoria:=3;
    writeln(f,'Istoria: ',st.istoria);
    st.fizika:=3;
    writeln(f,'Fizika: ',st.fizika);
    st.geometri:=3;
    writeln(f,'Geometry: ',st.geometri);
    st.himia:=3;
    writeln(f,'Himia: ',st.himia);

    {Student Norni}
    writeln(f);
    st.lastname:='Norni';
    writeln(f,'Name:',st.lastname);
    st.byear:=2012-1991;
    writeln(f,'Age:',st.byear);
    st.group:='SM.12.2';
    writeln(f,'Group:',st.group);
    st.algebra:=3;
    writeln(f,'Algebra: ',st.algebra);
    st.istoria:=3;
    writeln(f,'Istoria: ',st.istoria);
    st.fizika:=3;
    writeln(f,'Fizika: ',st.fizika);
    st.geometri:=5;
    writeln(f,'Geometry: ',st.geometri);
    st.himia:=3;
    writeln(f,'Himia: ',st.himia);


    CloseFile(f);

    Reset(f);

    writeln('Write group');
    readln(gr);
    while not Eof(f) do
    begin
       Readln(f, NameStr);
       Readln(f, AgeStr);
       Readln(f, GrStr);
       Readln(f, AlgStr);
       Readln(f, IstStr);
       Readln(f, FizStr);
       Readln(f, GeomStr);
       Readln(f, HimStr);
       if Copy(GrStr, 7, 255) = gr then
       if (Copy(AlgStr, 10, 255) = '3') and (Copy(IstStr, 10, 255) = '3') and (Copy(FizStr, 9, 255) = '3') and (Copy(GeomStr, 11, 255) = '3') and (Copy(HimStr, 8, 255) = '3') then
       begin
          Writeln(Copy(NameStr, 6, 255));
          // И еще какие нибудь действия
          end;
       Readln(f);
    end;


   CloseFile(f);


   Readln(a);

 { except
    on E: Exception do
      Writeln(E.ClassName, ': ', E.Message);
  end;  }

end.
А вы подумайте, оптимизируйте, и т.д.
465
26 января 2013 года
QWERYTY
595 / / 25.03.2012
Кстати в типе stud оценки типа integer, 1000 бальная система оценок? Вполне достаточно однобайтового беззнакового.
Это мелоч конечно в наше время, с начала развития компьютерной техники - до начала 90-х вас бы выгнали с работы увидев код и контекст задачи.
7
26 января 2013 года
@pixo $oft
3.4K / / 20.09.2006
Цитата: QWERYTY
Вполне достаточно однобайтового беззнакового

Либо я тебя не понял, либо ты фигню написал :-) Потому как однобайтовое целое больше 256-ти комбинаций не вместит, а 1000 почти в 4 раза >256

465
26 января 2013 года
QWERYTY
595 / / 25.03.2012
Цитата: @pixo $oft
Цитата: QWERYTY
Вполне достаточно однобайтового беззнакового

Либо я тебя не понял, либо ты фигню написал :-) Потому как однобайтовое целое больше 256-ти комбинаций не вместит, а 1000 почти в 4 раза >256



В том то и дело что достаточно 256 положений для оценок. 1000 это не утверждение, а вопрос
Запятую чтоли пропустил, действительно вышло трудночитаемое предложение

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог