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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.10.2014, 21:42   #1
andrewe
 
Регистрация: 16.10.2014
Сообщений: 4
По умолчанию Исправте ошибки в коде

Исправте ошибки в коде. Програма создания файла не работает. Исправьте пожалуйста ошибки и как нужно переделайте ее.

Подготовить данные содержащие информацию о странах мира, данные оформить в виде записи, содержащей следующие поля: Страна, Столица, Часть мира, Население, Площадь. Создать программу записей подготовленных данных во внешний файл, и программу обработки этого файла выполняет следующие команды:
1 Выводит на экран введенные данные.
2 Добавляет записи в начало или конец файла.
3 Удаляет все данные о стране, найменивання которой задан с клавиатуры и выводит на экран обновленное содержимое файла.
4 Сортировка названия столиц по алфавиту.
5 Список стран, площадь которых превышает 500 000 км квадратных

код прикрепил в файле
Вложения
Тип файла: txt Kursachillo.txt (8.6 Кб, 120 просмотров)
andrewe вне форума Ответить с цитированием
Старый 16.10.2014, 22:20   #2
ZX Spectrum-128
Участник клуба
 
Регистрация: 05.11.2013
Сообщений: 1,601
По умолчанию

А зачем вы вариант с синтаксическими ошибками выкладываете? Вам же их исправили. И переведите названия на русский. Непонятно же совсем.
ZX Spectrum-128 вне форума Ответить с цитированием
Старый 17.10.2014, 13:40   #3
ZX Spectrum-128
Участник клуба
 
Регистрация: 05.11.2013
Сообщений: 1,601
По умолчанию

Код:
{ Подготовить данные содержащие информацию о странах мира, данные оформить
в виде записи, содержащей следующие поля: Страна, Столица, Часть мира,
Население, Площадь. Создать программу записей подготовленных данных
во внешний файл, и программу обработки этого файла выполняет
следующие команды:
1 Выводит на экран введенные данные.
2 Добавляет записи в начало или конец файла.
3 Удаляет все данные о стране, найменивання которой задан с клавиатуры и
выводит на экран обновленное содержимое файла.
4 Сортировка названия столиц по алфавиту.
5 Список стран, площадь которых превышает 500 000 км квадратных }

uses
  crt;
type
  geo=record
    country:string[80];
    capital:string[64];
    continent:string[32];
    population:int64;
    area:real;
  end;

var
  geo_bd : file of geo;
  my_geo : geo;
  choice : integer;

procedure output_rec;
begin
  clrscr;
  writeln('Страны мира:');
  reset(geo_bd);
  while not eof(geo_bd) do
    begin
      read(geo_bd,my_geo);
      with my_geo do
        begin
          write(country,' ');
          write(capital,' ');
          write(continent,' ');
          write(population);
          write(area:16:2);
        end;
      writeln;
    end;
  writeln('Нажмите Enter для перехода в главное меню.');
  readln;
  closefile(geo_bd);
end;

procedure append_rec;
begin
  clrscr;
  writeln('Добавление записи в базу данных "Страны мира":');
  reset(geo_bd);
  with my_geo do
    begin
      write('Название страны:');     readln(country);
      write('Название столицы:');    readln(capital);
      write('Название континента:'); readln(continent);
      write('Население:');           readln(population);
      write('Площадь:');             readln(area);
    end;
  seek(geo_bd,filesize(geo_bd));
  write(geo_bd,my_geo);
  writeln;
  writeln('Нажмите Enter для перехода в главное меню.');
  readln;
  closefile(geo_bd);
end;

procedure delete_rec;
var
  n,i : integer;
  s : String;
  t : geo;
begin
  clrscr;
  writeln('Удаление записи из базы данных "Страны мира":');
  write('Введите название столицы: '); readln(s);
  i:=0;
  n:=-maxint;
  Reset(geo_bd);
  while not eof (geo_bd) do
    begin
      read(geo_bd,t);
      inc(i);
      if t.capital=s then
        begin
          n:=i;
          break;
        end;
    end;
  if (filesize(geo_bd)<n) or (n<0) then
    begin
      writeln('В файле нет такой записи');
      closefile(geo_bd);
      writeln;
      writeln('Нажмите Enter для перехода в главное меню.');
      readln;
      exit;
    end;
  seek(geo_bd,n-1);
  for i:=n-1 to filesize(geo_bd)-2 do
    begin
      seek(geo_bd,i+1);
      read(geo_bd,t);
      seek(geo_bd,i);
      write(geo_bd,t);
    end;
  seek(geo_bd,filesize(geo_bd)-1);
  truncate(geo_bd);
  closefile(geo_bd);
  output_rec;
  writeln;
  writeln('Нажмите Enter для перехода в главное меню.');
  readln;

end;

procedure sort_rec;
const
  n=100;
var
  geo_arr : array [1..n] of geo;
  num,j,i : integer;
  t : geo;
begin
  clrscr;
  writeln('Страны мира, отсортированные по названиям столиц:');
  i:=0;
  reset(geo_bd);
  while not eof(geo_bd) do
    begin
      read(geo_bd,geo_arr[i+1]);
      inc(i);
    end;
  num:=i;
  for i:=1 to num do
    for j:=i+1 to num do
      if geo_arr[i].capital>geo_arr[j].capital then
        begin
          t := geo_arr[i];
          geo_arr[i]:=geo_arr[j];
          geo_arr[j]:=t;
        end;
  for i:=1 to num do
    begin
      with geo_arr[i] do
        begin
          write(country,' ');
          write(capital,' ');
          write(continent,' ');
          write(population);
          write(area:16:2);
        end;
      writeln;
    end;
  writeln('Нажмите Enter для перехода в главное меню.');
  readln;
  closefile(geo_bd);
end;

procedure list_rec;
begin
  clrscr;
  writeln('Страны мира, площадь которых больше 500 000 кв. км.:');
  reset(geo_bd);
  while not eof(geo_bd) do
    begin
      read(geo_bd,my_geo);
      if my_geo.area>500000 then
        begin
          with my_geo do
            begin
              write(country,' ');
              write(capital,' ');
              write(continent,' ');
              write(population);
              write(area:16:2);
            end;
          writeln;
        end;
    end;
  writeln('Нажмите Enter для перехода в главное меню.');
  readln;
  closefile(geo_bd);

end;

begin
  clrscr;
  assignfile(geo_bd,'geo.dat');
  { main loop }
  while true do
    begin
      clrscr;
      writeln('Выберите соответствующий пункт меню:');
      writeln('1. Вывод данных.');
      writeln('2. Добавление записи.');
      writeln('3. Удаление записи.');
      writeln('4. Сортировка названия столиц по алфавиту.');
      writeln('5. Список стран, площадь которых превышает 500000 кв. км.');
      writeln('0. Выход.');
      readln(choice);
      case choice of
        1 : output_rec;
        2 : append_rec;
        3 : delete_rec;
        4 : sort_rec;
        5 : list_rec;
        0 : exit;
      end; { of case }
    end;
end.
ZX Spectrum-128 вне форума Ответить с цитированием
Старый 17.10.2014, 13:40   #4
ZX Spectrum-128
Участник клуба
 
Регистрация: 05.11.2013
Сообщений: 1,601
По умолчанию

А это программа подготавливает файлик.


Код:
type
  geo=record
    country:string[80];
    capital:string[64];
    continent:string[32];
    population:int64;
    area:real;
  end;

var
  geo_bd : file of geo;
  my_geo : geo;
begin
  assignfile(geo_bd,'geo.dat');
  rewrite(geo_bd);
  with my_geo do
    begin
      country:='Китай';
      capital:='Пекин';
      continent:='Азия';
      population:=1366023160;
      area:=9598077;
    end;
  write(geo_bd,my_geo);
  closefile(geo_bd);
end.
ZX Spectrum-128 вне форума Ответить с цитированием
Старый 18.10.2014, 20:58   #5
andrewe
 
Регистрация: 16.10.2014
Сообщений: 4
По умолчанию

можешь сделать из этих двух программ, одну целую????(эта и на пост выше)
буду благодарен очень!!


Цитата:
Сообщение от ZX Spectrum-128 Посмотреть сообщение
А это программа подготавливает файлик.


Код:
type
  geo=record
    country:string[80];
    capital:string[64];
    continent:string[32];
    population:int64;
    area:real;
  end;

var
  geo_bd : file of geo;
  my_geo : geo;
begin
  assignfile(geo_bd,'geo.dat');
  rewrite(geo_bd);
  with my_geo do
    begin
      country:='Китай';
      capital:='Пекин';
      continent:='Азия';
      population:=1366023160;
      area:=9598077;
    end;
  write(geo_bd,my_geo);
  closefile(geo_bd);
end.
andrewe вне форума Ответить с цитированием
Старый 18.10.2014, 21:23   #6
ZX Spectrum-128
Участник клуба
 
Регистрация: 05.11.2013
Сообщений: 1,601
По умолчанию

Сделал уже.
ZX Spectrum-128 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Исправте ошибки в задаче саша аврамов Паскаль, Turbo Pascal, PascalABC.NET 1 07.02.2013 23:47
одномерный массив, исправте ошибки PROkaZZZniK Помощь студентам 2 08.12.2011 22:36
исправте ошибки dosha Помощь студентам 0 30.11.2010 22:51
Исправте ошибку в коде. Паскаль. Двумерные массивы. anna_ Помощь студентам 7 18.12.2009 14:09
Исправте ошибки Roman Общие вопросы .NET 4 15.06.2009 17:51