37805

Програмування лінійних та розгалужених алгоритмів

Лабораторная работа

Информатика, кибернетика и программирование

Ознайомитися з операторами вводу, виводу і присвоєння, навчитися записувати лінійні алгоритми на мові програмування Pascal; закріпити теоретичні відомості про розгалужені алгоритми, оператори передачі управління, навчитися програмувати розгалуження.

Украинкский

2017-03-19

62.52 KB

1 чел.

9

Міністерство освіти і науки України

Хмельницький національний університет

Кафедра системного програмування

Лабораторна робота №1

з програмування

на тему:

«Програмування лінійних та розгалужених алгоритмів»

Виконав:

Студент групи КІ-10-1

Ноль М.Г.

Перевірив:

Савенко О.С.

Хмельницький

2010

Лабораторна робота №1

Тема: програмування лінійних та розгалужених алгоритмів.

Мета: ознайомитися з операторами вводу, виводу і присвоєння, навчитися записувати лінійні алгоритми на мові програмування Pascal; закріпити теоретичні відомості про розгалужені алгоритми, оператори передачі управління, навчитися програмувати розгалуження.

Завдання

Задача 1. За заданими сторонами a, b, c трикутника знайти величини згідно з варіантами. Передбачити введення значень a, b, c  з клавіатури. Виведення вихідних даних здійснювати з відповідним пояснюючим текстом.

Варіант 8. Знайти .

b2 + c2a2)/2bc.

Блок-схема 1

початок

Ввести(a,b,c)

P1:=(b*b+c*c-a*a)/(2bc)

P2:=sqrt(1-p1*p1)

P:=p1+p2

Вивести(р)

кінець

uses crt;

  (*оголошуємо змінні для сторін і шуканих величин*)

var a, b, c, p, p1, p2: real;

begin

clrscr;

writeln ('Введіть сторони трикутника:');

  (*вводимо значення сторін*)

readln (a, b, c);

  (*обчислюємо значення синуса і косинуса*)

p1:=(b*b+c*c-a*a)/(2*b*c);

p2:=sqrt(1-p1*p1);

   (*обчислюємо значення суми*)

p:=p1+p2;

   (*виводимо результат*)

writeln ('cos(a)+sin(a)=', p:5:2);

readln

end.

Задача 2. Дано числа a, b, c. Надрукувати їх в порядку зменшення.

Блок-схема 2

початок

Ввести(a,b,c)

max:=a

А

А

+

b>max?

+

c>max?

max:=b

max:=c

               

min:=a

+

b<min?

+

c<min?

min:=b

                                   

                                            

min:=c

+

a≠max?

a≠min?

+

b≠max?

b≠min?

p:=a

p:=b

c≠max?

c≠min?

+

p:=c

Вивести(max,p,min)

кінець

uses crt;

var a, b, c, max, min, p: real;                        

  (*Оголошуємо основні та допоміжні змінні*)

begin

clrscr;

writeln ('Введіть числа a, b, c:');

  (*Вводимо значення чисел*)

readln (a, b, c);

  (*Знаходимо значення максимуму*)

max:=a;

if b>max then max:=b;

if c>max then max:=c;

  (*Знаходимо значення мінімуму*)

min:=a;

if b<min then min:=b;

if c<min then min:=c;

  (*Знаходимо інше число*)

if (a<>max) and (a<>min) then p:=a;

if (b<>max) and (b<>min) then p:=b;

if (c<>max) and (c<>min) then p:=c;

  (*Виводимо числа у порядку зменшення*)

writeln ('Числа у порядку зменшення: ', max:5:2, p:5:2, min:5:2);

readln

end.

у

Задача 3. Дано графік функції. Необхідно задати дану функцію аналітично і вкласти програму, яка при заданому значенні аргументу буде видавати значення функції.

1

х

0.5

0

-1

Блок-схема 3

початок

Ввести(х)

+

х<=0?

y:=0.5

y:=sin(x)

Вивести(у)

кінець

uses Crt;

var x, y: real;

begin

clrscr;

writeln ('Введіть х:');

  (*Вводимо значення х*)

readln (x);

  (*Перевіряємо умову, обчислюємо відповідне значення у*)

if x<=0 then y:=sin(x) else y:=0.5;

  (*Виводимо результати*)

writeln ('x=', x:5:2);

writeln ('y=', y:5:2);

readln

end.

Задача 4. Дано п’ятизначне число менше 30000, яке вводиться з клавіатури. Скласти програму, яка визначає кожну його цифру в розряді і додає їх.

початок

Блок-схема 4

Ввести(х)

+

10000<x<30000?

B

B

x1:=x mod 10

x2:=(x mod 100-x mod 10) div 10

x3:=(x mod 1000-x mod 100) div 100

x4:=(x mod 10000-x mod 1000) div 1000

x5:=x div 10000

p:=x1+x2+x3+x4+x5

Вивести(х1,х2,х3,х4,х5,р )

кінець

uses crt;

  (*Зробимо позначку*)

label start;

  (*Оголошуємо змінні для кожної цифри числа*)

var x, x1, x2, x3, x4, x5, p: integer;

begin

clrscr;

start: writeln ('Введіть число x, (10000<x<30000):');

  (*Вводимо значення числа х*)

readln (x);

  (*Перевіряємо умову*)

if (x<10000) or (x>30000) then goto start else

  (*Знаходимо кожну цифру числа*)

x1:=x mod 10;

x2:=(x mod 100 - x mod 10) div 10;

x3:=(x mod 1000 - x mod 100) div 100;

x4:=(x mod 10000 - x mod 1000) div 1000;

x5:=x div 10000;

  (*Додаємо усі цифри*)

p:=x1+x2+x3+x4+x5;

  (*Виводимо результат*)

writeln (x1,' одиниць, ', x2,' десятків, ', x3,' сотень, ', x4,' тисяч, ', x5,' десятків тисяч');

writeln (сума цифр=', p);

readln

end.


 

А также другие работы, которые могут Вас заинтересовать

66055. Антикризисная политика Франции 42.5 KB
  Налоговые льготы бизнесу и наиболее обеспеченным французам: налоговый щит максимальный уровень налога на доходы на уровне 50 от всех доходов физического лица вместо существовавших 60 и отмена налога на доходы на недвижимость постоянного проживания...
66056. Бюджетный дефицит 21.29 KB
  Бюджетный дефицит превышение расходов бюджета над его доходами Наиболее часто встречающаяся в экономической практике сложная ситуация это дефицит бюджета т. Дефицит рассматривается как временный если имеются перспективы его преодоления и он...
66057. Группа «большая семерка» - G-7 52 KB
  В G7 или большую семерку ведущих стран мира входят Канада Франция Германия Италия Япония Соединенное Королевство и США. На долю этих стран взятых вместе приходится две трети объема мирового производства. Первая встреча представителей этих стран состоялась в 1975 году в Рамбуйе Франция.
66061. Региональные финансы Омской области 2007-2011года 47 KB
  Расходы капитального характера в текущем году оцениваются в 207 от общих расходов областного бюджета. Минфин региона отчитался об исполнении областного бюджета за девять месяцев 2008 года На заседании регионального Правительства Министерство финансов региона представило отчет об исполнении областного бюджета за девять месяцев 2008 года.