Страница 1 из 1

-=Файлы=- Решите 2 задачки)

Добавлено: 05 апр 2009, 19:32
Worlok
Пожалуйста, решите задачу....выручайте!!!!Простые задачи, но блин я просто вкурить не могу как они решаются...препод лох!)))
короче:

1)Дан символьный файл f. Получить копию файла в файле g

2)Cведения об автомобиле состоят из его марки, номера и фамилии владельца. Дан файл f, содержащий сведения о нескольких автомобилях. Найти кол-во автомобилей каждой марки

народ, выручайте...

Re: -=Файлы=- Решите 2 задачки)

Добавлено: 05 апр 2009, 22:50
Naeel Maqsudov
Увы, какой препод - такие получаются и студенты :(
Какая версия Pascal?
Эти задачи по-разному решаются в разных версиях.

Re: -=Файлы=- Решите 2 задачки)

Добавлено: 05 апр 2009, 23:20
Worlok
Turbo Pascal 7.0

Re: -=Файлы=- Решите 2 задачки)

Добавлено: 05 апр 2009, 23:58
Naeel Maqsudov
1)

Код: Выделить всё

var
  f,g:file of byte;
  b:byte;
begin
  assign(f,'c:\source.dat');
  reset(f);
  assign(g,'c:\source copy.dat');
  rewrite(g);
  while not eof(f) do begin
    read(f,b);
    write(g,b);
  end;
  close(f);
  close(g);
end.

Re: -=Файлы=- Решите 2 задачки)

Добавлено: 06 апр 2009, 00:01
Worlok
спасибо бальшое)))

Re: -=Файлы=- Решите 2 задачки)

Добавлено: 06 апр 2009, 00:04
Naeel Maqsudov
2)
файл уже дан или надо еще написать программу, котороая этот файл создает?

Re: -=Файлы=- Решите 2 задачки)

Добавлено: 06 апр 2009, 00:10
Worlok
файл дан)))

Re: -=Файлы=- Решите 2 задачки)

Добавлено: 06 апр 2009, 07:51
Naeel Maqsudov
Ну так надо его приложить.

Re: -=Файлы=- Решите 2 задачки)

Добавлено: 06 апр 2009, 14:21
Worlok
вот и файл

Re: -=Файлы=- Решите 2 задачки)

Добавлено: 06 апр 2009, 15:22
Naeel Maqsudov
Вот только теперь понятно, что это не задача на записи, а просто на текстовые файлы!

Код: Выделить всё

var
  f:text;
  names:array[1..100] of string;
  counts:array[1..100] of integer;
  i,n:integer;
  s:string;
begin
  assign(f,'c:\auto.txt');
  reset(f);
  n:=0;
  while not eof(f) do begin
    readln(f,s);
    if pos(' ',s) > 0 then s:=copy(s,1,pos(' ',s)-1);
    i:=n;
    while (i>0) and (names[i]<>s) do dec(i);
    if i=0 then begin
      inc(n);
      names[n]:=s;
      counts[n]:=1;
    end else begin
      inc(counts[i]);
    end;
  end;
  for i:=1 to n do writeln('Марка  ',names[i],' количество ',counts[i]);
end.