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.


 

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

3409. Hазработка технологического процесса штамповки шестерни 165.22 KB
  В данной курсовой работе представлена разработка технологического процесса штамповки шестерни. Курсовая работа состоит из расчетно-пояснительной записки и графической части. В пояснительной записке выбирается метод штамповки, и метод нагрева заготов...
3410. Краны башенные. Строение и назначение 113.09 KB
  Назначение башенных кранов. Башенные краны широко применяются в гражданском, промышленном, энергетическом и гидротехническом строительстве для монтажных работ и работ по вертикальному и горизонтальному перемещению различных грузов. Если на строитель...
3411. Быстрорежущие стали 65.05 KB
  Классификация быстрорежущих сталей Быстрорежущие стали широко применяют для изготовления режущего инструмента, работающего в условиях значительного силового нагружения и нагрева (до 600–640 °С) режущих кромок. К этой группе сталей относятся...
3412. Исследование электромеханических свойств двигателя постоянного тока независимого возбуждения 306 KB
  Исследование электромеханических свойств двигателя постоянного тока независимого возбуждения. Исследовать влияние сопротивления цепи якоря, напряжения питания и магнитного потока на электромеханические и механические свойства двигателя постоянного тока независимого возбуждения, а также изучить способы изменения направления вращения якоря двигателя, построить естественные и искусственные характеристики двигателя.
3413. Тепловой расчет двигателя на режиме максимальной мощности 938.05 KB
  Целью курсового проекта по дисциплине «Автомобильные двигатели» является закрепление знаний, полученных студентами при изучении всех разделов дисциплины. В первой части проекта требуется произвести тепловой расчет двигателя на режиме максим...
3414. Электростатическое поле 336.5 KB
  Электростатическое поле. Электрические заряды, их свойства и классификация. Закон Кулона. Напряженность электростатического поля. Принцип суперпозиции электрических полей. Поток вектора. Теорема Гаусса для потока вектора  и ее...
3415. Электричество и магнетизм. Колебания и волны 392 KB
  Учебное пособие включает программу по второй части курса физики «Электричество и магнетизм. Колебания и волны», перечень теоретических вопросов и типовых задач по каждой теме для подготовки к семинарским занятиям, собеседованиям, экзаменам и контрол...
3416. Динамические системы 203.5 KB
  Динамические системы Динамической системой наз. система вида. Начальные условия. Для существования и единственности решения задачи, достаточно потребовать непрерывность правых частей, а также существование и н...
3417. Элементы квантовой механики 211.5 KB
  Элементы квантовой механики 1. Гипотеза де Бройля. 2. Соотношение неопределенности Гайзенберга. 3.Волновая функция и ее интерпретации. 4. Уравнение Шредингера. Стационарные состояния. В 1924 году французский физик Луи де Бройль выдвинул гипотезу о т...