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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 05.10.2014, 20:18   #1
Вася123456709
 
Регистрация: 18.09.2014
Сообщений: 9
По умолчанию Проблема при написании програмы. Пожалуйста помогите)

создать список студентов (количество студентов равно 10) вашей группы с такими сведениями: фамилия, имя, дата рождения (число, месяц и год). Вывести в файл фамилии и имена тех студентов кто родился в октябре или имеет имя Александр.
Программа по работе с файлами.
Проблема в том что у меня не выводит данные (
Вот код програмы
Код:
Program rec_no_var;
  const nmax=10;
type
  refdat=record
    FamilyName, Name:string[30];
    chuslo:string;
    month:string[15];
    year:string;
  end;
  refres=record
    FamilyName, Name:string[30];
  end;
 masb=array[1..nmax] of refres;
var
  a:refdat;
  b:masb;
  k:0..nmax; i:1..nmax;
  dat,res:text;
Begin
  assign(dat, 'C:\dat.txt'); reset(dat);
  assign(res, 'C:\res.txt'); rewrite(res);
  writeln(res, 'Вихідні відомості');
  k:=0;
  repeat
    readln(dat, a.FamilyName);
    readln(dat, a.Name);
    readln(dat, a.chuslo);
    readln(dat, a.month);
    readln(dat, a.year);
    writeln(res, a.FamilyName);
    writeln(res, a.Name);
    writeln(res, a.chuslo);
    writeln(res, a.month);
    writeln(res, a.year);
    writeln(res);
      if (a.month='жовтень') or (a.Name='Олександр') then
        begin
          k:=k-1;
          b[k].FamilyName:=a.FamilyName;
          b[k].Name:=a.Name;
        end;
      until eof(dat);
        writeln(res, 'Шукані відомості');
          if (k=0)then
            writeln(res, 'Таких немає')
          else
            for i:=1 to 10 do
              begin 
                writeln(res, b[i].FamilyName);
                writeln(res, b[i].Name);
                writeln(res);
              end;
  close(dat); close(res);
End.
Вася123456709 вне форума
Старый 06.10.2014, 11:49   #2
disbnt
Пользователь
 
Регистрация: 18.09.2014
Сообщений: 32
По умолчанию

1.dat,res:text;// textfile
2.assign(dat, 'C:\dat.txt');// не assign ,а - assignfile
3.close(dat);// не close ,а - closefile
4.k:=k-1;// наверное сдесь надо плюсовать
5.for i:=1 to 10 do// зачем это ... может лучше так for i:=1 to k+1 do
или k:=1;а после цикл for i:=1 to k do
disbnt вне форума
Старый 06.10.2014, 12:13   #3
disbnt
Пользователь
 
Регистрация: 18.09.2014
Сообщений: 32
По умолчанию

k:=k-1;
b[k].FamilyName:=a.FamilyName;
b[k].Name:=a.Name;
Здесь вы используете минусовое значение элементов массива
b[-1].FamilyName:=a.FamilyName;
b[-1].Name:=a.Name;
b[-2].FamilyName:=a.FamilyName;
b[-2].Name:=a.Name;
и так далее....
Вообщем плюсуйте k // k:=k+1;
disbnt вне форума
Старый 06.10.2014, 12:24   #4
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Научить тебя пользоваться дебаггером?
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума
Старый 06.10.2014, 23:02   #5
Вася123456709
 
Регистрация: 18.09.2014
Сообщений: 9
По умолчанию

Спасибо, я не откажусь от помощи. Буду очень признательный)
Всем спасибо за помощь, ошибку исправил. Программа работает.

Последний раз редактировалось Вася123456709; 06.10.2014 в 23:05.
Вася123456709 вне форума
Старый 07.10.2014, 08:28   #6
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Цитата:
Спасибо, я не откажусь от помощи.
Материалы:
- раз
- два
- три
- четыре
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума
Старый 08.10.2014, 21:22   #7
Вася123456709
 
Регистрация: 18.09.2014
Сообщений: 9
По умолчанию

Спасибо за помощь)
Вася123456709 вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема при написании трейнера malaghma Общие вопросы Delphi 10 24.03.2013 00:35
Возникла проблема при написании чата HelP mar4elo Работа с сетью в Delphi 12 29.11.2008 22:16
Помогите в написании пожалуйста: SViRT Паскаль, Turbo Pascal, PascalABC.NET 15 07.10.2008 21:57
Помогите пожалуйста при написании графических часов на С Black_Ak24 Общие вопросы C/C++ 7 12.06.2008 10:24