Разработка консольных приложений в среде Delphi

Автор работы: Дина Жолобова, 04 Октября 2010 в 20:06, курсовая работа

Краткое описание

В наше время программированием занимаются многие ПК-пользователи. И это вполне объяснимо: с помощью программ можно решать достаточно сложные задачи – задачи, которые могут отнять у человека много драгоценных часов, в то время как компьютер решит их за доли секунд. Кроме того, поработав какое-то время с чужими программами, хочется создать нечто свое, родное. И тогда возникает вопрос: с чего начать? Выбор языков программирования на данный момент очень велик: Basic, Pascal, C, Perl и так далее. Basic – самый легкий из этого списка, его не зря называют основой программирования, так как обычно начинают именно с него. Однако этот язык недостаточно мощный, поэтому сейчас многие начинают с чего-то более серьезного, например, с Паскаля (Pascal)1.
Именно с ним в данной курсовой работе мы и будем работать. В качестве среды для разработки приложений на этом языке выберем среду языка Delphi, который развился из Турбо Паскаля, а тот, в свою очередь, – из Паскаля.
Delphi позволяет разрабатывать приложения Windows. Но в этой работе мы рассмотрим только создание программ в стиле MS-DOS, называемых консольными приложениями.

Содержание работы

Введение 3
Глава 1. Простейшие арифметические и логические операции 5
Глава 2. Линейные программы 9
Глава 3. Ветвящиеся программы 11
Глава 4. Циклические программы 14
Глава 5. Двумерные массивы 16
Глава 6. Строковый тип данных 21
Глава 7. Операции с файлами. 24
Заключение 30
Список использованной литературы 31

Содержимое работы - 1 файл

Разработка консольных приложений в среде Delphi.docx

— 261.37 Кб (Скачать файл)

    Создадим  цикл while…do, который будет продолжаться до тех пор, пока не будет достигнут конец файла «rec.txt».

  1. while not eof(f) do //пока не будет достигнут конец файла, выполнять цикл
  2. begin
  3. readln (f,S);                  //считываем из файла фамилию
  4. write(f1,S,' ');               //записываем ее в «abc.txt»
  5. readln (f,S);                 //считываем имя
  6. write(f1,S[1],'. ');        //записываем его первую букву в файл
  7. readln (f,S);                 //считываем отчество
  8. writeln(f1,S[1],'.');     
  9. readln (f,S);               //считываем дату рождения
  10. readln (f,S);                 //считываем адрес
  11. readln (f,S);                //считываем количество детей
  12. Val(S,ch,j);                  //преобразуем строку в число
  13.   if j>0 then break;    //если преобразование некорректно, выйти из цикла
  14. readln (f,S);                  //считываем количество отработанных часов
  15. Val(S,z,j);
  16.   if j>0 then break;
  17. readln (f,S);                 //считываем расценку одного часа   
  18. Val(S,h,j);
  19.   if j>0 then break;
  20. n:=13-(ch*0.01);          // налог с учетом детей
  21. z:=h*z;                         //зарплата без учета налога
  22. z:=z-(z/100)*n;            //зарплата с учетом налога
  23. writeln(f1,z:2:2);         //записываем зарплату в файл «abc.txt»
  24. end;
 

    Функция eof(f) (строка 1) принимает значение «истина» (true), если достигнут конец файла, иначе – «ложь» (false).

    В теле цикла while…do происходит построчное считывание из файла «rec.txt» в переменную S типа string (так как считанные из файла данные имеют строковой тип). В третьей строке считываем фамилию рабочего, в четвертой – записываем в файл. Далее (строка 5) считываем имя рабочего и записываем первую букву в файл «abc.txt» вместе с точкой (строка 6). То же самое делаем в седьмой и восьмой строке с отчеством: считываем и записываем в файл «abc.txt» первую букву отчества, так же добавив после нее точку.

    В строках 9 и 10 считываем дату рождения и адрес. Эти данные нам не нужны, но пропустить мы их не можем. В строке 11 считываем количество детей. Так  как мы имеем дело со строковыми данными, математические операции мы с  ними проводить не можем. Но мы можем  преобразовать эти данные в их численные значения с помощью  процедуры val, где первый параметр – строка, которую необходимо преобразовать, второй – переменная соответствующего численного типа, в которую будет записан результат, а третий параметр хранит позицию первого недопустимого символа. Так, если после преобразования третий параметр больше нуля – выходим из цикла.

    Таким образом, мы считаем из файла «rec.txt» и запишем в переменные ch, h, z количество детей, количество отработанных часов и расценку одного часа соответственно.

    В строке 20 рассчитаем налог в процентах, который будет вычитаться из зарплаты: умножим 0,01 на количество детей и  вычтем это произведение из 13. Затем, в строке 21, мы умножим расценку одного часа на количество отработанных часов. А в строке 22 посчитаем зарплату рабочих с учетом налога. И, наконец, запишем зарплату в файл «abc.txt». Отметим, что после чтения или записи все открытые файлы рекомендуется закрыть.

    Приведем  полный код программы.

    program Project7;

    {$APPTYPE CONSOLE}

    uses

    SysUtils;

    var f,f1:textfile;

    j,ch,h:integer;

    n,z:real;

    S:string;

    begin

    assign(f, 'C:\rec.txt');

    assign(f1, 'C:\abc.txt');

    reset(f);                      //открыть файл «rec.txt» в режиме чтения

    rewrite(f1);                //открыть файл «abc.txt» в режиме записи

    while not eof(f) do //пока не будет достигнут конец файла, выполнять цикл

    begin

    readln (f,S);                  //считываем из файла фамилию

    write(f1,S,' ');               //записываем ее в «abc.txt»

    readln (f,S);                 //считываем имя

    write(f1,S[1],'. ');        //записываем его первую букву в файл

    readln (f,S);                 //считываем отчество

    writeln(f1,S[1],'.');     

    readln (f,S);               //считываем дату рождения

    readln (f,S);                 //считываем адрес

    readln (f,S);                //считываем количество детей

    Val(S,ch,j);                  //преобразуем строку в число

      if j>0 then break;    //если преобразование некорректно, выйти из цикла

    readln (f,S);                  //считываем количество отработанных часов

    Val(S,z,j);

      if j>0 then break;

    readln (f,S);                 //считываем расценку одного часа   

    Val(S,h,j);

      if j>0 then break;

    n:=13-(ch*0.01);          // налог с учетом детей

    z:=h*z;                         //зарплата без учета налога

    z:=z-(z/100)*n;            //зарплата с учетом налога

    writeln(f1,z:2:2);         //записываем зарплату в файл «abc.txt»

    end;

    close(f1);                     //закрываем файл «abc.txt»

    close(f);                       //закрываем файл «rec.txt»

    end.

    В заключение стоит заметить, что если файл «abc.txt», в случае его отсутствия в указанной папке, создается автоматически после запуска программы, то файл «rec.txt» должен существовать, иначе возникнет ошибка, и программа не сможет корректно работать. На рис. 7.1. показан результат работы программы, а на рис. 7.2. и рис. 7.3. показано содержимое файлов «rec.txt» и «abc.txt».

 

 

 

Заключение

 

    В наше время среднестатистическому  ПК-пользователю достаточно редко приходится сталкиваться с консольными приложениями, большее предпочтение он отдает оконным. И кажется, что программы с текстовым интерфейсом уходят в прошлое. Напрасно. На самом деле такие  программы и в настоящее время необходимы. Может быть, внешне они и малопривлекательны, однако, как мы выше уже убедились, по функциональности ничем не уступают приложениям с богатым графическим интерфейсом – а это самое главное.

    В результате проделанной работы мы получили семь консольных приложений для решения различных задач. Они эффективны в работе, малотребовательны к ресурсам и могут работать на маломощных компьютерах.

    Хотелось  бы еще добавить, что все-таки в современном мире обойтись без программирования крайне сложно. В самом начале я уже говорила, что существует немало таких задач, решение которых у человека отнимает много времени. Возьмем для примера хотя бы задачу 4.7 (стр. 13). Вообразите, сколько времени ушло бы на ее решение без помощи программы, если бы m было равно, например, 10000? Не говоря уже о том, что человек – не робот, он способен допускать различные ошибки в расчетах, особенно когда ему приходится проделывать долгую и утомительную работу. В то время как компьютер всегда максимально точен.

    А, к примеру, в современной экономике ошибки, пусть даже самые, казалось бы, мелкие, могут привести к катастрофическим последствиям. Именно поэтому очень важно уметь грамотно и качественно писать различные программы для решения экономически важных задач, которые с каждым новым этапом в развитии страны становятся все сложнее.

 

Список  использованной литературы

 
  1. Алексеев, Е. Р., & Чеснокова, О. В. (2004). Шаг за шагом. Турбо Паскаль 7.0. Москва: NT Press.
  2. Бобровский, С. (2000). Delphi 5. Учебный курс. Санкт-Петербург: Питер.
  3. Гаврилов, С. Программирование консольных приложений на Delphi. Получено 09. 04. 2010 r., из http://www.gptelecom.ru/Articles/Console/index.htm

Информация о работе Разработка консольных приложений в среде Delphi