Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Работа и интерфейс программы

Предварительно для нашего задания мы должны создать файл data3.txt, записать туда данные, а именно параметры A,R через пробел для построения графика.

Рисунок 4.1 – Заполнение файла

В зависимости от введенных параметров, программа будет строить и выводить график в графическое окно (см. Рисунок 4.2).

Рисунок 4.2 –Работа графического окна

 

 

Задание 5. Записи.

Написать программу, которая формирует файл записей данной структуры
Type Kniga=Record
Avtor:String;
Nazvanie:String;
God:Integer;
Izdatel:String;
Stranizy:Integer;
End;
и определяет: - есть ли книги данного автора;
- книгу с наибольшим количеством страниц;
- названия книг данного автора, изданных с указанного года, в данном издательстве.

Блок – схема:

 


 

 

Алгоритм:

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

Сделаем описание переменных.

Далее для ввода в диалоговом окне данных создаем цикл из n=10.

 

 

Далее работаем с полученным массивом. Согласно заданию ищем, есть ли книги данного автора. Вводим с клавиатуры автора интересующей нас книги и присваиваем ей значение «avt». Далее он сравнивает «avt» с авторами которые содержатся в нашем массиве.

Согласно задание нужно найти книгу с наибольшим количеством страниц. Для этого в цикле сравниваем с максимальным значением каждую книгу.

Далее требуется найти названия книг данного автора, изданных с указанного года, в данном издательстве.

В итоге получаем код программы (см. Приложение Д)

Работа и интерфейс программы

Ввод осуществляется при помощи клавиатуры и подтверждается (принимается) нажатием клавиши Enter. Все данные должны вводиться согласно условию, сказанному в задание и дублированному на экране (см. рисунок 5.1).

Рисунок 5.1 – Ввод данных

 

После того как мы ввели все данные выполняем все условия указанные в задании. Выполняем поиск

- есть ли книги данного автора;

- книгу с наибольшим количеством страниц;

- названия книг данного автора, изданных с указанного года, в данном издательстве.

(см. Рисунок 5.2)

Рисунок 5.2 - Результат

 

 

Заключение

В ходе выполнения курсовой работы были разработаны и реализованы, программы для работы с текстовой строкой, двумерным массивом, файлами, машинной графикой, записями.

При выполнении курсовой работы были изучены основные конструкции языка высокого уровня Паскаль, такие как, циклы, условия, процедуры, функции, массивы, строки и т.д.

Паскаль предоставляет достаточные средства для написания программ по заданному алгоритму для решения практически любых задач.

 

 

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

 

1. Немнюгин С.А. - Turbo Pascal. Программирование на языке высокого уровня, СПб.: Питер, 2002, 496 с.

2. Рапаков Г. Г., Ржеуцкая С. Ю. – Программирование на языке Pascal, СПб.: БХВ-Питербург, 2004, 480 с.

3. Окулов С. М. - Основы программирования, М.:БИНОМ. Лаборатория знаний, 2004, 424 с.

4. Материалы сайта Система программирования PascalABC.NET - http://pascalabc.net/.

5. С.Н.Лукин - Turbo Pascal 7.0. Самоучитель, Диалог – МИФИ, 1999, 211 с.

6. Энциклопедия «Википедия» [Электронный ресурс] - http://ru.wikipedia.org.

7. Ерёмин О. Ф. – Методическое пособие по программированию на языке Pascal ABC, Моздок, 2009, 49 с.

 

Приложение А.

Код программы к заданию 1

program A1;

uses crt;

var s:string;

A:array [1..20] of string;

B:array [1..10] of string;

i,j,max,r,k,l,n,m:integer;

begin

read(s); {ввод последовательности слов}

r:=1;

for i:=1 to length(s) do

if s[i]=' ' then

begin

j:=j+1;

A[j]:=copy(s,r,i-r);

r:=i+1;

end; {Каждое слово вносится в отдельную ячейку массива символьного типа}

for i:=1 to j do

writeln('A[',i,']=',A[i]);

{Массив выводится для проверки}

For i:=1 to j do

begin

m:=0;

n:=0;

for l:=1 to length(A[i]) do

case A[i][l] of

'0'..'9': n:=1;

'а'..'я': m:=1;

end;

if (n<>0) and (m=0) then begin

writeln('только числа в слове "',A[i],'"');

for j:=length(A[i])downto 1 do

write(A[i][j]);

writeln;

end;

if (m<>0) and (n=0) then begin

writeln('только знаки в слове "',A[i],'"');

for j:=length(A[i])downto 1 do

write(A[i][j]);

writeln;

end;

end;{Выводим слова, в которых есть либо только числа, либо только знаки и переворачиваем их}

end.

 

Приложение Б.

Код программы к заданию 2

 

 

Приложение В.

Код программы к заданию 3

Program A3;

uses crt;

const c=['0','1','2','3','4','5','6','7','8','9'];

var

f1,f2:text;

a:array[1..99] of string;

b:array[1..99] of integer;

s,s1:string;

r1,r2:real;

i,j,k,x,g,v,s2:integer;

 

begin

assign(f1,'file1.txt');

assign(f2,'file2.txt');

Rewrite(f1);

write('vvedite text: ');readln(s);

write(f1,s);

write('начальное слово: ');

readln(r1);

write('конечное слово: ');

readln(r2);

 

Reset(f1);

while not eof(f1) do readln(f1,s);

 

j:=1;

for i:=1 to length(s) do

begin

if (s[i]<>' ') and (s[i] in c) then

begin

a[j]:=a[j]+s[i];

end

else inc(j);

end;

x:=j;

i:=0;

s2:=0;

for j:=1 to x do

begin

s1:=a[j];

val(s1,v,g);

if (v>r1) and (v<r2) then

begin

inc(i);

b[i]:=v;

end

else begin

s2:=s2+v;

k:=k+1;

end;

end;

writeln;

writeln('Кол-во чисел: ',k);

for j:=1 to x do writeln(a[j]);

writeln;

writeln('Сумма чисел: ',s2);

Rewrite(f2);

for i:=1 to k do write(f2,b[i],' ');

close(f1);

close(f2);

end.

 

Приложение Г

Код программы к заданию 4

program A4;

uses GraphABC,crt;

const p=3.14;

var x,t,y,A,R,m:real;

n:byte;

l:text;

Q:array [1..4] of real;

 

begin

setwindowsize(600,600);

line(300,0,300,600);

line(0,300,600,300);

assign(l,'data3.txt');

reset(l);

for n:=1 to 4 do

begin

readln(l,m);

Q[n]:=m;

end;

A:=Q[1];

R:=Q[2];

t:=0;

while t<2*p do

begin

x:=(1+A)*cos(A*t)+R*cos(1+A)*t;

y:=(1+A)*sin(A*t)+R*sin(1+A)*t;

circle(trunc(x*20+300),trunc(y*20+300),2);

t:=t+0.01;

end;

close(l);

end.

 

Приложение Д.

Код программы к заданию 5

Program А5;

Uses Crt;

Const n=10;

Type kniga = record

Avtor, Nazvanie, Izdatel:string[20];

God:integer;

Stranizy:real;

end;

 

Var a: array[1..n] of kniga;

i:byte;

avt:string;

naz:string;

izd:string;

max:real;

g:integer;

 

begin

ClrScr;

for i:=1 to n do

with a[I] do

begin

Writeln('Введите автора ',I);

Readln(Avtor);

Writeln('Название книги');

Readln(Nazvanie);

Writeln('Издательство');

Readln(Izdatel);

Writeln('Год издания');

Readln(god);

Writeln('Кол-во страниц');

Readln(Stranizy);

end;

Writeln;

Writeln('Введите автора интересующей книги');

Readln(avt);

for i:=1 to n do

with a[I] do

if avtor=avt then writeln (avtor,' "',Nazvanie,'", ',izdatel,' ',god,'г. ',stranizy,'стр.');

Readln;

Writeln('Книга с наибольшим кол-ом страниц');

max:=0;

for i:=1 to n do

with a[I] do

if stranizy>max then begin

max:=stranizy;

naz:=Nazvanie;

end;

write(Naz,' ',max,'стр.');

Readln;

Writeln('Введите автора интересующей книги');

Readln(avt);

Writeln('Укажите год издания');

Readln(g);

Writeln('Укажите Издательство');

Readln(izd);

for i:=1 to n do

with a[I] do

if (avt=avtor) and (g=god) and (izd=Izdatel) then writeln('Книга "',Nazvanie,'", ',stranizy,'стр.');

Readln;

end.



<== предыдущая лекция | следующая лекция ==>
 | 
Поделиться с друзьями:


Дата добавления: 2016-09-03; Мы поможем в написании ваших работ!; просмотров: 253 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

80% успеха - это появиться в нужном месте в нужное время. © Вуди Аллен
==> читать все изречения...

2294 - | 2147 -


© 2015-2025 lektsii.org - Контакты - Последнее добавление

Ген: 0.009 с.