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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 07.05.2008, 19:53   #1
Катериша
Новичок
Джуниор
 
Регистрация: 07.05.2008
Сообщений: 2
По умолчанию Работа с файлами (Paskal)

Помогите пожалуйста с написание проги:

Имеется текстовый файл с фамилиями торговых агентов фирмы и суммами продаж каждого из них за месяц. Если эта сумма составляет 1000-2000руб., то 5%, если менее 1000руб., то агент получает 1% комиссионных. Сформулируйте 3 текстовых файла, где будут указаны фамилии агентов, соответствующие суммы продаж (менее 1000, от 1000 до 2000 и более 2000) и суммы комиссионных.
Катериша вне форума Ответить с цитированием
Старый 07.05.2008, 23:37   #2
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Посмотрел я на вашу задачу и думаю, что сами вряд ли справитесь. Я приведу полный проверенный код с пояснениями. Попробуйте с ним разобраться, я думаю поймете.
Создаете текстовый файл, где построчно записываете Фамилия, пробел , сумма.
Пишите программу:
Код:
uses crt;
var f,g,h,j:text;//переменные-текстовые файлы
    s,s1:string;  //вспомогательные строки
    i,t,c:integer; //вспомогательные числовые значения
begin
clrscr;
assign(f,'itog.txt');//связываетесь с исходным файлом
reset(f);  //открываете его для чтения
assign(g,'itog1.txt');  //создаете еще три файла
rewrite(g);              //открываете их для записи
assign(h,'itog2.txt');
rewrite(h);
assign(j,'itog3.txt');
rewrite(j);
while not eof(f) do
   begin
     readln(f,s);  //считываем строку из файла
//превращаем в число нашу сумму, которая находится между пробелом и концом строки
     val(copy(s,pos(' ',s)+1,length(s)-pos(' ',s)),t,c);
     if t<1000 then
        begin
//если меньше 1000, * на 0,01 и превращанм в строку
          str(round(t*0.01),s1);
          s:=s+' '+s1;  //добавляем к исходной строке
          writeln(g,s)  //записываем в файл
        end
//также остальные два файла, только вы не указали комиссионные при >2000, я взял 10%.
     else if (t>=1000)and(t<=2000) then
        begin
          str(round(t*0.05),s1);
          s:=s+' '+s1;
          writeln(h,s)
        end
      else
         begin
          str(round(t*0.1),s1);
          s:=s+' '+s1;
          writeln(j,s);
         end;
     end;
writeln('Faily g,h,j zapisany!');
readln;
close(f);
close(g);//закрываем все файлы
close(h);
close(j);
end.
puporev вне форума Ответить с цитированием
Старый 12.05.2008, 19:38   #3
Катериша
Новичок
Джуниор
 
Регистрация: 07.05.2008
Сообщений: 2
По умолчанию

спасибо Вам большое, не знаю что бы без вас делала
Катериша вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с файлами Yar Помощь студентам 2 02.06.2008 08:03
работа с BAT - файлами !!! Noor Помощь студентам 8 04.09.2007 16:11
Работа с файлами Acros Помощь студентам 5 14.02.2007 18:40
Работа с файлами LeoN Общие вопросы Delphi 5 23.12.2006 13:33