Помощь - Поиск - Пользователи - Календарь
Полная версия: Файлы (куда без них:))
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Dimusik
В прошлом я уже задавал эту задачку но что-то никто не захотел помочь. Напомню
В файле хранится информация о правонарушениях по региону N за 5 лет в следующем виде: наименование правонарушения и кол-во правонарушений данного вида за каждый год. Извесно кол-во жителей данного региона.Сформировать файл, в котором кроме перечисленной информации имеется 2 графы: кол-во преступлений данного вида в расчете на душу населения и среднегодовое кол-во преступлений данного.
Очень нужна программа для работы. Просьба вылаживать свои мысли по этому.
мисс_граффити
Я даже могу сказать, ПОЧЕМУ никто не захотел помочь (думаю, и сейчас никто не захочет): тебе нужна не помощь, а решенная задача. Полность делать за тебя ни у кого нет ни времени (сессия скоро, однако), ни желания (по 20-му разу одно и то же).
Dimusik
Почему это полностью решенная задача? Мне хотябы подсказать как ее делать и с помощью чего и все.
мисс_граффити
Был у тебя файл со структурой
prav = record
name: string[20];
count: integer;
end;

А будет:
prav1 = record
name: string[20];
count: integer;
cnt, year: real;
end;


В чем проблема? Из первого читаешь, во второй пишешь...
Посчитать среднегодовое количество и количество на душу населения вроде как несложно...
Dimusik
помоему мне надо делать с помощью типизированого файла а не записи
и посчитать сргодовое кол-во вызывает затруднение
мисс_граффити
А типизированный файл, по-твоему, из чего должен состоять, если не из записей?
Кстати, наверное (раз количество лет известно) лучше сделать так:
prav = record
name: string[20];
count: array[1..5] of integer;
end;


среднегодовое:
for i:=1 to 5 do
year:=year+count[i];
year:=year/5;
Гость
подкоректируйте прогу
Код

Program baza;uses crt;
type prav=record
name:string[20];
count:array[1..5] of integer;
end;
var f1:file of prav;
cnt,year:real;S:string;
i:integer;
begin
textcolor(green);clrscr;
write('Vvedite imya faila:');
readln(S);
assign(f1,S);
rewrite(f1);
for i:=1 to 5 do
    begin
    write('Vvedite kol-vo giteley regiona:');
    readln(count);
    write('Vvedite pravonarushenie:');
    readln(name);
    1: write('Vvedite kol-vo pravonarusheniy:');
    readln(count1);
        begin
            if count1>count then
                write('Nepravilny vvod.Povtorite snova!!!');
                goto 1;
        end;
    write(f1,prav)

    year:=year+count[i]
    year:=year/5;
           end.

она не совсем завершена. Многие моменты не совсем ясны.
Ozzя
Цитата
подкоректируйте прогу

norespect.gif
Даже и пытаться не буду, пока не исправишь синтаксические ошибки. Ты её хоть пытался компилировать?
volvo
Цитата
Многие моменты не совсем ясны.
Мне тоже... Например, совсем не ясно, когда тебе надоест вводить данные в "вечном" цикле...
Гость
я не думал что это такая тяжелая задача.smile.gif
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.