Линейный алгоритм на Turbo Pascal. — КиберПедия 

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

Автоматическое растормаживание колес: Тормозные устройства колес предназначены для уменьше­ния длины пробега и улучшения маневрирования ВС при...

Линейный алгоритм на Turbo Pascal.

2017-10-01 340
Линейный алгоритм на Turbo Pascal. 0.00 из 5.00 0 оценок
Заказать работу

{Вычисление суммы}

program summa;

uses crt;

Var

a,b:real;

c:real;

Begin

writeln (‘Вычисление суммы’);

readln (a,b);

c:=a + b;

writeln (‘ Ответ:с= ‘,c:6:2);

readln;

End.

РАЗВЕТВЛЁННЫЙ АЛГОРИТМ на TURBO PASCAL.

IF (условие) THENоператор 1ElSEоператор 2; Условный оператор

{Нахождение наибольшего числа из двух чисел}

program chislо;

uses crt;

Var

a,b:real;

c:real;

Begin

writeln (‘Нахождение наибольшего числа’);

readln (a,b);

if a>b then

c:=a

Else

c:=b;

writeln (‘ Ответ:с= ‘,c:6:2);

readln;

End.

{ Составить программу нахождения корней квадратного уравнения ax2 + bx + c =0}

program sqroot;

uses crt;

Var

a,b,c: real; {коэффициенты уравнения}

x,x1,x2:real; {корни уравнения}

D:real; {дискриминант}

Begin

writeln (‘*Решение квадратного уравнения*’);

write (‘Введите в одной строке значения коэффициентов’);

writeln (‘и нажмите <Enter>’);

write (‘->’);

readln (a,b,c); {ввод коэффициентов}

D:= sqr(b) – 4 * a * c;

if D<0

Then

writeln (‘Уравнение не имеет корней.’)

Else

Begin

if D>0

Then

Begin

x1:= (- b + sqrt(d)) / (2 * a);

x2:= (- b - sqrt(d)) / (2 * a);

writeln (‘x1= ‘,x1,’x2= ’,x2);

end

Else

Begin

x:= - b / (2 * a);

writeln (‘x= ‘, x);

end;

end;

readln;

End.

ЦИКЛИЧЕСКИЙ АЛГОРИТМ с известным числом повторений (оператор цикла с параметром) на TURBO PASCAL.

forпараметр:=начальное значение toконечное значениеdo оператор; Оператор цикла с параметром
forпараметр:=начальное значениеdowntoконечное значениеdo оператор; Оператор цикла с параметром

{Вывод целых положительных чисел от 1 до 100}

program chisel;

uses crt;

Var

N:integer;

I: integer;

Begin

writeln (‘Вывод чисел от 1 до 100’);

N:=1;

for I:=1 to 100 do

write( I:4);

N:=N+1;

readln;

End.

ЦИКЛИЧЕСКИЙ АЛГОРИТМ с неизвестным числом повторений (оператор цикла с предусловием) на TURBO PASCAL.

whileлогическое выражениеdo оператор; Оператор цикла с предусловием

{Запрос пароля}

program parol;

uses crt;

var word: string;

Begin

writeln (‘Пароль’);

while word <> ‘terminator’ do

Begin

writeln (‘Введите пароль’);

readln;

readln (word);

end;

writeln (‘Правильно! Вы допущены к работе!’);

readln;

End.

ЦИКЛИЧЕСКИЙ АЛГОРИТМ с неизвестным числом повторений (оператор цикла с постусловием) на TURBO PASCAL.

repeat выражения; операторы; untilлогическое выражение; Оператор цикла с постусловием

{Решение уравнения y=a*x2 a=2; x ϵ [0;10] с шагом 2}

program Q_Repeat;

uses crt;

const a=2; x_min=0; x_max=10; hx=2;

var i,x,y:integer;

Begin

clrscr;

x:=x_min;

Repeat

y:=a*sqr(x);

writeln (‘x=’,x:2,’y=’,y:4);

x:=x+hx;

Until

x>x_max;

readln;

End.

ВСПОМОГАТЕЛЬНЫЙ АЛГОРИТМ на TURBO PASCAL.

Вспомогательный алгоритм, записанный на языке программирования называется подпрограммой (п/п). Подпрограмма имеет имя (идентификатор), по которому к ней можно обращаться. Все подпрограммы должны быть описаны в разделе описаний. В описании подпрограммы перед параметрами-переменными стоит ключевое слово var.

Параметры: глобальные и локальные.

Глобальные: действующие в любой части программы, имеющие имя, описанное в основной программе.

Локальные: действующие в подпрограмме, их идентификаторы и значения имеют смысл только в пределах данной подпрограммы и недоступны вызывающей программе.

Параметры: формальные и фактические.

Формальные – имена параметров, которые использованы в описании подпрограммы.

Фактические – конкретные значения, которые указываются в основной программе.

 

В языке программирования TURBO PASCAL приняты два вида подпрограмм:

Процедуры и функции.

Объявление процедуры:

procedure имя процедуры (список формальных параметров: тип идентификатора);

const {описание констант}

var {описание переменных}

begin {начало тела процедуры}

операторы;

end; {конец тела процедуры}

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

 

Объявление функции:

function имя функции (список формал. параметров: тип идентиф.): тип идентификатора;

const {описание констант}

var {описание переменных}

begin {начало тела функции}

операторы;

ИмяФункции:=Значение;

end; {конец тела функции}

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

 

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

 

{Поиск максимального числа из трёх введённых чисел}

program MAX_3;

uses crt;

var a,b,c,z1,z2:integer;

procedure MAX_2(x,y:integer; var z:integer);

Begin

if x>y then z:=x else z:=y;

end;

BEGIN

clrscr;

writeln (‘Поиск максимума из трёх чисел’);

writeln(‘ Введите три числа через пробел и нажмите Enter’ );

readln (a,b,c);

MAX_2(a,b,z1);

MAX_2(c,z1,z2);

writeln (‘Максимальное число’, z2);

readln;

End.

РЕКУРСИЯ

В TURBO PASCALдопускается наличие в теле подпрограммы оператора вызова самой себя. Такие подпрограммы называются рекурсивными, а такой способ вызовы – рекурсией.

Во всех рекурсивных подпрограммах должно присутствовать какое-то условие прекращения рекурсии. При этом единственном условии рекурсия должна прекратиться; при всех остальных условиях она будет продолжаться.

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

{Рекурсивная функция «Факториал»}

program factor;

uses crt;

function factorial(k:integer):integer;

Begin

if k=1

then factorial:=1

else factorial:=k* factorial(k-1);

end;

Var

n:integer; {число, факториал которого надо вычислить}

f:integer; {факториал числа n}

Begin

writeln (‘Вычисление факториала’);

writeln (‘Введите число, факториал которого надо вычислить’);

write(‘ - >’);

readln(n);

f:= factorial(n);

writeln (‘Факториал числа ‘,n, ‘ равен’,f);

readln;

End.

ГРАФИКА на TURBO PASCAL.

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

Модуль graph описывается с помощью директивы uses: uses graph;

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

Комментарии grdr - параметр, определяющий графический драйвер: grdr:=0 или grdr:= detect; grmod– параметр графического режима работы видеосистемы: цветной (16 цветов, разрешение 640х480); initgraph– инициализирует графический режим; ’’– драйвер находится в текущем каталоге.


var grdr,grmod:integer;

Begin

grdr:=detect;

initgraph(grdr,grmod,’’);

_ _ _ _ _ _ _ _ _ _ _ _

closegraph;

End.

Процедуры графического модуля graph.

putpixel(x,y,c); - изображение точки с координатами х,у; с – номер цвета.

line(x1,y1,x2,y2); - изображение отрезка прямой, ограниченный точками с координатами х1,у1и х2,у2.

rectangle(x1,y1,x2,y2); - изображение рамки.

bar(x1,y1,x2,y2); - изображение прямоугольника, где х1,у1 - начало и х2,у2 - конец диагонали прямоугольника.

circle(x,y,r); - изображение окружности радиуса r с центром в точке с координатами х, у.

arc(x,y,alf1,alf2,r); - изображение дуги радиуса r с центром в точке с координатами х, у, где alf1,alf2 – углы в градусах.

setbkcolor(c); -указание цвета фона, с- номер цвета.

setcolor(c); - цвет рисования для putpixel, line, circle.

setfillstyle(obr,c); - цвет заполнения для bar, floodfill, где obr=o – цвет фона, obr=1 – номер указанного цвета.

floodfill(x,y,c); - заполнение замкнутой области, ограниченной линией цвета с, в соответствии с процедурой setfillstyle.

setlinestyle(stil, pattern, tolsch); - указание типа линии.

outtextxy(x,y, ‘Текст’); - устанавливает указатель вывода в точку с координатами x,y и выводит строку символов Текст.

 

Можно использовать 16 цветов: Black(0) – чёрный DarkGray(8) – тёмно-серый Blue(1) -синий LightBlue(9) – ярко-синий Green(2) - зелёный LightGreen(10) – ярко-зелёный Cyan(3) - голубой LightCyan(11) – ярко-голубой Red(4) - красный LightRed(12) – розовый Magenta(5) – фиолетовый LightMagenta(13) – малиновый Brown(6) – коричневый Yellow(14) –жёлтый LightGray(7) – светло-серый White(15) - белый                

 

 


{Выводит узор из концентрических окружностей разного цвета}

program uzor;

uses graph;

{Выводит узор из концентрических окружностей разного цвета}

var grdr,grmod:integer;

x,y,r:integer; {координаты центра и радиус окружности}

dr:integer; {приращение радиуса окружности}

i: integer; {счётчик циклов}

Begin

grdr:=detect;

initgraph(grdr,grmod,’’);

setbkcolor (8);

x:=320:y:=240;

r:=20;dr:=15;

for i:=1 to 15 do

Begin

setcolor (i);

circle (x,y,r);

r:=r + dr;

end;

readln;

closegraph;

End.

МАССИВЫ.

  • Массив – структура данных, представляющая собой совокупность элементов одного типа.
  • Массив имеет имя, которое даёт ему программист.
  • Массив должен быть объявлен в разделе объявления переменных.
  • При объявлении массива удобно использовать именованные константы

var a: array [1..n] of integer;

· Доступ к элементу массива осуществляется путём указания индекса (номера) элемента, в качестве которого можно использовать выражение целого типа, например, целую константу или переменную типа integer.

· Одномерный массив - линейная таблица (1 индекс – i); двумерный массив – прямоугольная таблица (2 индекса – i,j).

· Для ввода, вывода и обработки массивов удобно применять инструкции циклов (for, while, repeat).

Блок ввода элементов массива:

for i:=1 to n do

read (a[i]);

Блок ввода элементов массива:

for i:=1 to n do

Begin

write (‘a[‘,i,’]=’);

readln (a[i]);

end;

Блок вывода элементов массива:

for i:=1 to n do

write (a[i]);

Задача.

Требуется определить среднюю и минимальную температуру за данный период, а также число дней, когда температура была выше 0, если дано:

 

Данные наблюдений температуры воздуха за 10 дней.

                   
-3 -5       -4 -7 -11 -3  

program Temperatura;

uses crt;

const n=10;

var i,s:integer; t_sred:real; t_min:integer; n_pol:integer; T:array[1..n] of integer;

BEGIN

clrscr;

{Ввод элементов массива}

writeln (‘Введите массив из ‘,n,’ элементов’);

for i:=1 to n do

read (T[i]);

{Вывод элементов массива}

writeln (‘Введённые элементы массива:’);

for i:=1 to n do

write (T[i]:4);

writeln;

readln;

{Нахождение минимальной температуры}

t_min:=T[1];

for i=2 to n do

if T[i]<t_min

then t_min:=T[i];

{Нахождение средней температуры}

s:=0

for i=1 to n do

s:=s+T[i];

t_sred:=s/n;

{Нахождение числа дней, когда температура была выше 0}

n_pol:=0;

for i:=1 to n do

if T[i]>0

then n_pol:=n_pol+1;

writeln (‘t_min=’,t_min, ‘t_sred=’,t_sred:4:1, ‘n_pol=’,n_pol’);

readln;

END.


Поделиться с друзьями:

Историки об Елизавете Петровне: Елизавета попала между двумя встречными культурными течениями, воспитывалась среди новых европейских веяний и преданий...

Типы оградительных сооружений в морском порту: По расположению оградительных сооружений в плане различают волноломы, обе оконечности...

История развития хранилищ для нефти: Первые склады нефти появились в XVII веке. Они представляли собой землянные ямы-амбара глубиной 4…5 м...

Кормораздатчик мобильный электрифицированный: схема и процесс работы устройства...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.098 с.