на тему рефераты Информационно-образоательный портал
Рефераты, курсовые, дипломы, научные работы,
на тему рефераты
на тему рефераты
МЕНЮ|
на тему рефераты
поиск
Язык программирования Pascal
b>3.4.3 Программа

Uses graph,crt;

Var gd, gm: integer;

Begin

gd: =0; gm: =0;

Initgraph (gd, gm,' ');

setcolor (5);

Line (100, 200,250, 200);

Line (250, 200, 209,150);

Arc (157,183, 61, 195, 60);

Setfillstyle (0,3);

Floodfill (256, 200,5);

Ellipse (200, 135, 75, 233, 15, 20);

Ellipse (200, 135, 303, 75, 15, 20);

Ellipse (208, 139, 303, 91, 15, 24);

setfillstyle (1,8);

floodfill (220,145,5);

Arc (120, 200, 180, 0,10);

Setfillstyle (1,1);

Floodfill (125, 202,5);

Arc (120, 200, 180, 0, 15);

Arc (130, 200, 260, 0, 15);

Arc (200, 200, 180, 0,10);

setfillstyle (1,1);

Floodfill (125, 202,5);

Arc (120, 200, 180, 0, 15);

Arc (130, 200, 260, 0, 15);

Arc (200, 200, 180, 0,10);

Setfillstyle (1,1);

Floodfill (200, 202,5);

Arc (200, 200, 180, 0, 15);

Arc (210, 200, 260, 0, 15);

Line (150, 90, 150, 124);

Line (155, 90, 155, 123);

Line (150, 90, 155, 90);

Setfillstyle (1,1);

Floodfill (153, 100,5);

Arc (144, 83, 41, 310,10);

Arc (158, 83, 259, 126,10);

Setfillstyle (1,1);

Floodfill (144, 83,5);

Circle (144, 83,5);

Setfillstyle (1,2);

Floodfill (144, 83,5);

Circle (158, 83,5);

Setfillstyle (1,2);

Floodfill (158, 83,5);

Circle (255, 200,5);

Setfillstyle (1,4);

Floodfill (255, 200,5);

Setfillstyle (1,8);

Floodfill (200, 150,5);

Circle (215, 177,7);

Setfillstyle (1,9);

Floodfill (215, 177,5);

Setfillstyle (1, 14);

floodfill (121, 200,5);

readkey;

closegraph;

end.

3.5 Решение задачи

3.5.1 Постановка задачи

Даны первый член и разность арифметической прогрессии. Написать рекурсивную функцию для нахождения суммы n первых членов прогрессии.

3.5.2 Таблица идентификаторов

Переменные

Тип

Значение

1

Sn

Real

Сумма n первых членов арифметической прогрессии

2

n

integer

Количество членов арифметической прогрессии

3

A1,A2

Real

Первый и второй члены арифметической прогрессии

4

d

Real

Разность прогрессии

3.5.3 Блок-схема

3.5.4 Программа

Program recursiy;

var A1,d,A2,Sn: real; n: integer;

function prog (n: integer): integer;

begin

if n=1 then prog: =A1 else prog: =A1+d* (n-1) +prog (n-1);

end;

begin

Writeln ('введите n');

readln (n);

writeln ('введите первый и 2-ой член арифметической прогрессии');

readln (A1, A2);

d: =A2-A1;

Sn: =prog (n);

writeln (Sn);

readln;

end.

3.5.5 Результат работы программы

3.6 Решение задачи

3.6.1 Постановка задачи

Дан двумерный массив. Удалить среднюю строку (строки).

3.6.2 Таблица идентификаторов

Переменные

Тип

Значение

1

a

array

заполнение двумерного массива

2

i, j

integer

Параметры цикла

3

n, m

integer

Размерность массива

4

k

integer

Количество элементов до среднего

3.6.3 Блок-схема

3.6.4 Программа

Var a: array [1. .100,1. .100] of integer;

i,j,m,n,k: integer;

begin

writeln ('Введите разм. мас');

readln (n,m);

randomize;

for i: =1 to n do

begin

for j: =1 to m do

begin

a [i,j]: =random (100);

write (a [i,j]: 3);

end;

writeln;

end;

writeln ('После удаления');

if n mod 2<>0 then begin k: =n div 2+1;

For i: =k to n-1 do

for j: =1 to m do

a [i,j]: =a [i+1,j] ;

for i: =1 to n-1 do

begin

for j: =1 to m do

write (a [i,j]: 3);

writeln;

end;

end

else

if n mod 2=0 then begin k: =n div 2;

For i: =k to n-2 do

for j: =1 to m do

a [i,j]: =a [i+2,j] ;

for i: =1 to n-2 do

begin

for j: =1 to m do

write (a [i,j]: 3);

writeln;

end; end;

readln;

end.

3.6.5 Результат работы программы

3.7 Решение задачи

3.7.1 Постановка задачи

Дан одномерный массив целых чисел произвольной длины. Заполните массив случайными числами до 100. Используя, оператор выбора, создайте меню, в котором при нажатии на клавишу производятся следующие действия:

1 - вычислить среднее геометрическое четных элементов массива;

2 - найти количество делителей максимального числа;

3 - вставить в массив два элемента с данными значениями: первый после минимального элемента, второй - перед минимальным элементом.

3.7.2 Таблица идентификаторов

Переменные

Тип

Значение

1

a

array

Заполнение одномерного массива

2

Max

integer

Максимальный элемент

3

Min

integer

Минимальный элемент

4

i

integer

Параметр цикла

5

N

integer

Размерность массива

6

k

integer

Количество делителей

7

m

integer

Выбор действия

8

s

Real

среднее геометрическое четных элементов массива

9

v, c

integer

два элемента вставляемые в массив

10

k1

integer

Номер позиции перед (после) которой вставляем элемент

11

f

integer

Количество элементов, которые делятся на 2 без остатка

12

d

integer

Произведение всех элементов, которые делятся на 2 без остатка

3.7.3 Блок-схема

3.7.4 Программа

uses crt
;

Var a: array [1. .100] of integer;

n, i,m,min,max,k,f,d,k1,c,v: integer;

S: real;

begin

clrscr;

randomize;

writeln ('введите разм. массива');

readln (n);

for i: =1 to n do

begin

a [i]: =random (101);

write (a [i]: 3);

end;

writeln;

writeln ('введите номер операции программы');

writeln ('1-вычислить среднее гео-ое четных эл. мас');

writeln ('2-найти ко-во делителей max числа');

writeln ('3-вставить в массив: 1-ый после min эл,2-ой перед min эл');

readln (m);

case m of

1: begin f: =0;

for i: =1 to n do

begin

if a [i] mod 2=0 then f: =f+1

end; writeln (f);

d: =1; s: =0;

for i: =1 to n do

begin

if a [i] mod 2=0 then d: =d*a [i] ;

end;

writeln (d);

if d=0 then s: =0 else s: =exp (1/f * ln (d));

writeln ('ср. геом=',S: 3: 3);

readln;

end;

2: begin

max: =a [1] ;

for i: =1 to n do

if a [i] >max then begin max: =a [i] ;

end;

for i: =1 to max do

if max mod i=0 then k: =k+1;

writeln ('ко-во делителей max числа',k);

readln;

end;

3: begin

writeln ('введите 2 числа');

readln (v,c);

min: =a [1] ;

k1: =1;

for i: =1 to n do

if a [i] <min then begin min: =a [i] ; k1: =i; end;

writeln;

for i: =n downto k1 do

a [i+1]: =a [i] ;

a [k1]: =v;

for i: =n+1 downto k1+1 do

a [i+1]: =a [i] ;

a [k1+2]: =c;

for i: =1 to n+2 do

write (a [i]: 3);

readln;

end;

end;

end.

3.7.5 Результат работы программы

3.8 Решение задачи

3.8.1 Постановка задачи

Дан массив записей, содержащий сведения о расписании поездов: направление; фамилия, имя, отчество машиниста; время отправления поезда. Необходимо осуществить:

1. заполнение массива данными;

2. поиск поездов по фамилии, имени, отчеству машиниста;

3. редактирование времени отправления поезда;

4. удаление поездов по полю "Направление";

5. сортировку по полю "Направление".

3.8.2 Таблица идентификаторов

Переменные

Тип

Значение

1

A

array

Заполнение массива

2

N

integer

Количество поездов

3

Nap

string

Поле направления

4

fio

String

Поле фамилии имя отчества

5

vy

String

Поле время отправления

6

i, j

integer

Параметры цикла

7

q

integer

Выбор действия

8

s1

string

Новое время

9

x

Rs

Дополнительная переменная для сортировки

10

s

String

Время

11

w

String

Фамилия, Имя, Отчество машиниста

12

r

String

Направление поезда, которое удаляем

13

k

Integer

Номер удаляемой записи

14

f

integer

флажок

3.8.3 Блок-схема

3.8.4 Программа

type RS=Record

Nap: string [40] ;

fio: string [40] ;

vy: string [10] ;

end;

var a: array [1. .50] of RS;

n, i,j,q,k,f: integer; s,s1,w,r: string; x: RS;

begin

Writeln ('введите kol poezdov');

readln (n);

for i: =1 to n do

begin

writeln ('введите Направление',' ', i,' ','поезда');

readln (a [i]. Nap);

writeln ('введите Ф. И.О. ',' ', i,' ','машиниста');

readln (a [i]. fio);

writeln ('введите время',' ', i,' ','отправления');

readln (a [i]. vy);

end;

writeln ('введите номер операции программы');

writeln ('1-поиск поездов по фамилии, имени, отчеству машиниста');

writeln ('2-редактирование времени отправления поезда');

writeln ('3-удаление поездов по полю <Направление>');

writeln ('4-сортировку по полю <Направление>');

readln (q);

case q of

1: begin

writeln ('ведите Ф. И.О. машиниста ');

readln (w);

f: =0;

for i: =1 to n do

begin

if a [i]. fio=w then begin

writeln ('Направление ',a [i]. Nap,' ','время ',a [i]. vy);

f: =1; end;

if f=0 then writeln ('таких нет');

end; end;

2: begin

writeln ('введите время которое вы хотите поменять');

readln (s);

writeln ('введите время на которое вы хотите поменять');

readln (s1);

for i: =1 to n do begin

if a [i]. vy=s then a [i]. vy: =s1;

end;

for i: =1 to n do

begin

writeln (i,' ','машинист ',a [i]. fio,' ','Направление ',a [i]. Nap);

writeln ('время ',a [i]. vy);

writeln;

end; end;

3: begin

writeln ('введите Направление поезда, которое вы хотите удалить');

readln (r);

for i: =1 to n do begin

if a [i]. Nap=r then

k: =i;

for i: =1 to n do

if i<>k then

writeln (i,' ','машинист ',a [i]. fio,' ','Направление ',a [i]. Nap);

writeln ('время ',a [i]. vy);

end;

end;

4: begin

for i: =1 to n-1 do

for j: =1 to n do

if a [i]. Nap>a [j]. Nap then

begin

x: =a [i] ;

a [i]: =a [j] ;

a [j]: =x;

end;

for i: =1 to n do

begin

writeln (i,' ','машинист ',a [i]. fio,' ','Направление ',a [i]. Nap);

writeln ('время ',a [i]. vy);

end;

end;

end;

readln;

end.

3.8.5 Результат работы программы

3.9 Решение задачи

3.9.1 Постановка задачи

Написать программу решения ребуса VOLVO+FIAT=MOTOR.

3.9.2 Таблица идентификаторов

Переменные

Тип

Значение

1

v, o, l, f, i, a, t, m, r

0. .9

Параметры цикла

2

dig

0. .9

Множество цифр

3

Sum

longint

Сумма VOLVO+FIAT

4

motor

longint

MOTOR

3.9.3. Блок-схема

3.9.4 Программа

Uses crt
;

var

v, o, l, f, i, a, t, m, r: 0. .9;

dig: set of 0. .9;

sum, motor: longint;

begin

clrscr;

for v: =0 to 9 do begin

include (dig,v);

for o: =0 to 9 do

if not (o in dig) then begin

include (dig,o);

for l: =0 to 9 do

if not (l in dig) then begin

include (dig, l);

for f: =0 to 9 do

if not (f in dig) then begin

include (dig,f);

for i: =0 to 9 do

if not (i in dig) then begin

include (dig, i);

for a: =0 to 9 do

if not (a in dig) then begin

include (dig,a);

for t: =0 to 9 do

if not (t in dig) then begin

include (dig,t);

for m: = 0 to 9 do

if not (m in dig) then begin

include (dig,m);

for r: =0 to 9 do

if not (r in dig) then begin

include (dig,r);

Sum: =v*10000 + (o+f) *1000 + (l+i) *100 + (v+t) *10 + (o+t);

Motor: =m*10000+o*1000+t*100+o*10+r;

if sum = motor then

writeln (v,o,l,v,o,'+',f, i,a,t,'=', m,o,t,o,r);

exclude (dig,r)

end;

exclude (dig,m);

end;

exclude (dig,t);

end;

exclude (dig,a);

end;

exclude (dig, i);

end;

exclude (dig,f);

end;

exclude (dig,l);

end;

exclude (dig,o);

end;

exclude (dig,v);

end;

readln;

end.

3.9.5 Результат работы программы

3.10 Решение задачи

3.10.1 Постановка задачи

Дана строка символов s1, s2, …, sn. Известно, что среди s1, …, sn есть, по крайней мере одна запятая. Найти натуральное i такое, что si - последняя по порядку запятая.

3.10.2 Таблица идентификаторов

Переменные

Тип

Значение

1

v

char

запятая

2

s

string

Строка

3

i

integer

Параметр цикла

4

n

integer

Номер позиции

3.10.3 Блок-схема

3.10.4 Программа

uses crt;

var v: char;

s: string;

i,n: integer;

begin clrscr;

writeln ('Vvedite stroky');

readln (s);

begin v: =',';

for i: =1 to length (s) do

if s [i] =v then n: =i;

end;

writeln (n);

readln;

end.

3.10.5 Результат работы программы

Заключение

Я закрепила теоретические знания языка программирования на практике. Практические занятия используются для тщательного изучения содержательно-методических принципов построения программы, содержания и структуры прикладного программного обеспечения, обсуждения методики изучения отдельных тем курса с различными вариантами технического и методического обеспечения.

Список литературы

1. Немнюгин С.А. Turbo PASCAL С-П Изд-во Питер 2000.

2. Фаронов В.В. Turbo Pascal 7.0.М. "Нолидж", 1999

3. Шаньгин В.Ф., Поддубная Л., серия ПО ЭВМ кн.7, М, ВШ, 1991

4. Васюкова Р.Д., Практикум по основам программирования, Язык ПАСКАЛЬ, М, ВШ, 1991

5. Новичков В.С., Алгоритмические языки в техникуме, ПАСКАЛЬ, М, 1990

Страницы: 1, 2



© 2003-2013
Рефераты бесплатно, курсовые, рефераты биология, большая бибилиотека рефератов, дипломы, научные работы, рефераты право, рефераты, рефераты скачать, рефераты литература, курсовые работы, реферат, доклады, рефераты медицина, рефераты на тему, сочинения, реферат бесплатно, рефераты авиация, рефераты психология, рефераты математика, рефераты кулинария, рефераты логистика, рефераты анатомия, рефераты маркетинг, рефераты релиния, рефераты социология, рефераты менеджемент.