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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.05.2010, 16:40   #1
newgener
Пользователь
 
Регистрация: 24.05.2010
Сообщений: 28
По умолчанию файл записи паскаль

ПОМОГИТЕ, ПОЖАЛУЙСТА
1.Сформировать файл, содержащий сведенья об n автомобилях. Записи включают: марку, страну-производителя, стоимость.
2. Увеличьте на 10 % стоимость всех авто, произведённых в конкретной стране (страна вводиться пользователем).

Цитата:
type

automobil=record
marca: string [10];
strana: string [10];
stoimost: integer;

end;
var
strana2: string [10];
m: array [1..100] of automobil;
n,i,j,k,l: integer;
f: text;
ns: real;
begin
assign (f,'C:\mach.txt');
rewrite (f);

writeln('vvedite kolichestvo automobiley');
read (n);
for i:=1 to n do
begin
writeln ('vvedite marcu');
read (m[i].marca);

Writeln ('vvedite stranu');
read (m[i].strana);

writeln ('vvedite stoimost');
read (m[i].stoimost);


writeln (f,m[i].marca);
writeln (f,m[i].strana);
write (f,m[i].stoimost);

end; {запись закончена}
reset (f);
writeln ('vvedite stranu');
readln (strana2);
for j:=1 to n do begin

readln (f,m[j].strana);
read (f,m[j].stoimost);



if (strana2[10]=m[i].strana) then
ns:=(m[i].stoimost+(m[i].stoimost/100*10));


writeln (ns);
end;







close (f);
end.

В ЧЁМ ОШИБКА?: ГОВОРИТ "НЕВЕРНЫЙ ЧИСЛОВОЙ ФОРМАТ" а какой тогда верный, как считать из файла числовую строку
newgener вне форума Ответить с цитированием
Старый 27.05.2010, 18:03   #2
newgener
Пользователь
 
Регистрация: 24.05.2010
Сообщений: 28
По умолчанию

ну помогите
newgener вне форума Ответить с цитированием
Старый 27.05.2010, 18:47   #3
newgener
Пользователь
 
Регистрация: 24.05.2010
Сообщений: 28
По умолчанию

ну пожалуйста
newgener вне форума Ответить с цитированием
Старый 27.05.2010, 19:23   #4
newgener
Пользователь
 
Регистрация: 24.05.2010
Сообщений: 28
По умолчанию

ну помогите пожалуйста
newgener вне форума Ответить с цитированием
Старый 27.05.2010, 21:03   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Код:
type

  automobil = record
    marca: string[10];
    strana: string[10];
    stoimost: integer;
  end;

var
  strana2: string[10];
  m: array[1..100] of automobil;
  n, i, j, k, l: integer;
  f: text;
  ns: real;
begin
  assign(f, 'C:\mach.txt');
  rewrite(f);

  writeln('vvedite kolichestvo automobiley');
  readln(n);
  for i := 1 to n do
  begin
    writeln('vvedite marcu');
    readln(m[i].marca);

    Writeln('vvedite stranu');
    readln(m[i].strana);

    writeln('vvedite stoimost');
    readln(m[i].stoimost);


    writeln(f, m[i].marca);
    writeln(f, m[i].strana);
    writeln(f, m[i].stoimost);

  end; {запись закончена}
  Close(f);

  reset(f);
  j := 0;
  while not Eof(f) do begin
    inc(j);
    readln(f, m[i].marca);
    readln(f, m[j].strana);
    readln(f, m[j].stoimost);
  end;
  close(f);
  n := j;
  WriteLn('Прочитали из файла ', n, ' записей.');


  writeln('vvedite stranu');
  readln(strana2);
  for i := 1 to n do begin
    ns := m[i].stoimost;
    if (strana2 = m[i].strana) then
      ns := (m[i].stoimost + (m[i].stoimost / 100 * 10));
    WriteLn(' Страна: ', m[i].strana, ' Модель: ', m[i].marca, ' стоимость: ', NS: 1);
  end;
  Readln;
end.
НО!
Это всё фигня.

Потому что.

1) я убеждён, что Вам нужно сохранять/читать данные не из текстового файла, а из ТИПИЗИРОВАННОГО файла
Код:
var
  f : file of automobil;
2) процедуры записи файла и чтения обязательно надо разделять! (либо в разные программы, либо сделать программу с меню и в меню делать пункты создать файл, добавить записи в файл, читать данные и т.д. и т.п., либо, хотя бы проверять наличие файла, если его нет - создавать, если есть - читать из него!) Иначе это получается глупо и утомительно вносить каждый раз записи при запуске программы!

3) подозреваю, что надо не просто увеличить стоимость, но и записать эту новую стоимость в файл...
Serge_Bliznykov вне форума Ответить с цитированием
Старый 28.05.2010, 12:24   #6
newgener
Пользователь
 
Регистрация: 24.05.2010
Сообщений: 28
По умолчанию

3 не надо, но спасибо большое, очень благодарен
newgener вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поток записи в файл. Lanit Общие вопросы C/C++ 2 09.01.2010 14:27
Текстовый файл - Структура (записи) felmor Паскаль, Turbo Pascal, PascalABC.NET 0 18.05.2009 22:36
Ошибка записи в файл nisoldatov Софт 2 31.03.2009 02:24
Pascal.Записи и файл!!! W_P Помощь студентам 2 20.05.2008 22:01
Экспорт записи в *.dbf файл Galgi БД в Delphi 2 20.02.2008 07:02