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.


 

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

74182. НОВЕЙШИЕ ВЕРТИКАЛЬНЫЕ ТЕКТОНИЧЕСКИЕ ДВИЖЕНИЯ И МЕТОДЫ ИХ ИЗУЧЕНИЯ 13.37 KB
  Новейшие тектонические движения происходили с конца палеогена до четвертичного периода. Эти движения создали все формы мега и макрорельефа существующие сейчас в пределах материков и океанов поэтому их изучают в основном геоморфологическими а также биогеографическими методами.
74183. Радиогеохронологические методы 13.6 KB
  Метод определения абсолютного возраста изотопный радиологический метод метод определения истинной продолжительности отдельных геохронологических единиц в тысячах и миллионах лет. В отличие от методов относительного возраста методы абсолютного возраста дают возможность определить возраст магматических метаморфических и осадочных горных пород...
74186. Метод мощностей (понятие, назначение, применение) 13.99 KB
  Метод мощностей понятие назначение применение Данный метод применяется для изучения древних в меньшей степени новейших нисходящих вертикальных движений. При анализе мощностей необходимо учитывать следующее: Анализ мощностей основывается на изучении таких...
74187. Платформы (понятие, строение: фундамент, осадочный чехол) 11.14 KB
  Платформы понятие строение: фундамент осадочный чехол Платформа это обширная тектоническая структура обладающая сравнительно малой подвижностью. Платформы образуется на месте складчатой области в результате разрушения и снижения гор...
74188. Object-oriented programming languages and tools 37 KB
  They were working on simultions tht del with exploding ships nd relized they could group the ships into different ctegories. The Smlltlk tem ws inspired by the Simul 67 project but they designed Smlltlk so tht it would be dynmic. The objects could be chnged creted or deleted nd this ws different from the sttic systems tht were commonly used. It is this feture tht llowed Smlltlk to surpss both Simul 67 nd the nlog progrmming systems.
74189. Object-oriented programming languages and tools. Evolution of Smalltalk 41 KB
  The lnguge ws first generlly relesed s Smlltlk80. Smlltlklike lnguges re in continuing ctive development nd hve gthered loyl communities of users round them. NSI Smlltlk ws rtified in 1998 nd represents the stndrd version of Smlltlk.
74190. Logic programming languages and tools 38 KB
  User specifies the specifictions of solution nd the computer derives the execution sequence for tht solution: Let us hve irline flight informtion of the form: flightflight_number from_city to_city deprture_time rrivl_time Then ll the flights from Wshington DC to Snt Clr cn be specified s either direct flights or s flights with n intermedite stop: flightflight_number DC Snt Clr deprture_time rrivl_time or flightflight_number DC X deprt1 rrive1 flightflight_number X Los ngles deprt2 rrive2 deprt2 =rrive130 Unlike...