Управляющие структуры



ФЕДЕРАЛЬНОЕ АГЕНТСТВО СВЯЗИ

Государственное образовательное учреждение высшего профессионального образования

«Поволжский государственный университет телекоммуникаций и информатики»

Отчет по лабораторной работе №5:

«Управляющие структуры»

дисциплина «Программирование»

вариант № 4

Самара, 2011

Содержание:

Задание № 1 -------------------------------------------------------------------------------------------- 3

Задание № 2-А ----------------------------------------------------------------------------------------- 5

Задание № 2-Б ------------------------------------------------------------------------------------------ 7

Задание № 3-А ----------------------------------------------------------------------------------------- 9

Задание № 3-Б ----------------------------------------------------------------------------------------- 11

Задание № 4 -------------------------------------------------------------------------------------------- 15

Задание № 1:

Составить блок-схему алгоритма и программу для вычисления значений функции в зависимости от заданного с клавиатуры значения аргументах. Аргументx задать самостоятельно и протестировать все ветви алгоритма.

Блок-схема:

Исходныйкод:

program lab5_4_1;

var n,x:Real;

begin

writeln('Введите x');

readln(x);

 if x<=-1 then

   n:=-1;

 if (x>-1) and (x<=1) then

   n:=sqr(x);

 if x>2 then

   n:=-(round(1/sqr(x)));

   writeln('n=', n:8:3);

readln;

end.

Протокол работы программы: снимок экрана №1

Задание № 2-А:

Ввести с клавиатуры переменные х и у. Если 150<х<400 и 100<у<300, то нарисовать в точке с координатами (х, у) окружность диаметром 100, иначе – диаметром 10.

Блок-схема:

Исходный код:

program lab5_4_2_a;

uses graph, crt;

var x,y,grdriver,grmode:integer;

begin

grdriver:=detect;

initgraph(grdriver, grmode=0, 'C:\graph.tpu');

writeln('Введите х, у через пробел');

readln(x,y);

 if (x>150) and (x<400) and (y>100) and (y<300)  then

  circle(x,y,100);

 else

  circle(x,y,10);

readln;

end.

Задание № 2-Б:

Ввести с клавиатуры числас иm. Если меньшим из них являетсяс, но его значение положительно, найти и вывести на экран среднее арифметическое значений этих чисел. Иначе, найти и вывести суммус иm.

Блок-схема:

Исходный код:

programlab5_4_2_b;

var c,m,s:integer;

begin

writeln('Введитеc иm через пробел');

readln(c,m);

if (c<m) and (c>0) then

  begin

   s:=(c+m) div 2;

   writeln('Среднее арифметическое - ',s);

end

 else

  begin

   s:=(c+m);

   writeln('c + m = ', s);

end;

readln;

end.

Протокол работы программы: снимок экрана №2

Задание № 3-А:

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

Алгоритм:

  1. Вводa, b;
  2. p = a – b;
  3. Еслиp > 0, вывод «Первое число больше второго», иначе выполнять дальше;
  4. Еслиp < 0, вывод «Первое число меньше второго», иначе выполнять дальше;
  5. Еслиp = 0. вывод «Введенные числа равны»;
  6. Конец.

Блок-схема:

Исходный код:

program lab_5_4_3_A;

var a, b, p: integer;

begin

writeln;

writeln('Введите два числа через пробел');

readln (a,b);

 p:=a-b;

  ifp > 0then

writeln ('Первое число больше второго');

ifp < 0then

writeln ('Первое число меньше второго');

if p = 0 then

    writeln ('Числа равны');

readln;

end.

Работа программы: снимок экрана №3

Задание № 3-Б:

Составить блок-схему и программу для решения следующей задачи:

Ввести с клавиатуры два числа: N и M. Если оба числа больше 100, то заменить каждое из них меньшим и вывести результаты на экран. Если первое число положительное, а второе отрицательное, то уменьшить их в два раза и вывести результаты. Иначе, найти и вывести среднее арифметическое этих чисел.

Алгоритм:

  1. Вводn, m;
  2. Еслиn > 100 иm > 100, вычислитьp =nm;
    1. Еслиp > 0, присвоитьn значениеm и вывод «Оба числа больше 100, при чем  первое число больше второго», вывод значенияm, иначе выполнять дальше;
    2. Еслиp < 0, присвоитьm значениеn и вывод «Оба числа больше 100, при чем первое число меньше второго», вывод значенияm, иначе выполнять дальше;
    1. Еслиn > 0 иm < 0, вычислить и присвоитьn =n/2 иm=m/2 и вывод значенийn иm, иначе выполнять дальше;
    2. Вычислитьs=(n+m)/2 и выводs;
    3. Конец.

Блок-схема:

Исходныйкод:

program lab_5_4_3_B;

label l1;

var n,m,s,p: real;

j: boolean;

begin

writeln;

writeln ('Введите два числа через пробел');

readln (n,m);

    if (n>0) AND (m<0) then

     begin

n:=n/2;

m:=m/2;

writeln ('Значения уменьшенных в 2 разаm иn равны

               ',n:8:2, ' и ',m:8:2,'.');

j:=true;

     end;

      if (n>100) and (m>100) then

       begin

writeln ('Оба числа больше 100.');

p:=n-m;

         if p>0 then

          begin

           n:=m;

writeln ('Первое число больше второго. Наименьшее

                     число равно ',n:8:2);

j:=true;

         end;

         if p=0 then

          goto l1;

         if p<0 then

          begin

           m:=n;

writeln ('Первое число меньше второго. Наименьшее

                     число равно ',m:8:2);

j:=true;

         end;

      end;

      if j=false then

       begin

l1:s:=(n+m)/2;

writeln ('Среднее арифметическое введенных чисел

                    равно ',s:8:2);

end;

readln;

end.

Протокол работы программы: снимок экрана №4

Задание № 4:

Для четырех произвольных чисел, введенных с клавиатуры, вывести на экран соответствующие результаты.

Если произведение второго и четвертого чисел четно, то вывести эти два числа и их произведение.

Если сумма первого и третьего чисел больше 150, то вывести эту сумму и все четыре числа.

Если выполняются одновременно два перечисленных выше условия, то вывести произведение второго и четвертого чисел и сумму первого и третьего.

Иначе, вывести эти четыре числа без изменения.

Составить соответствующие отладочные примеры и проверить работу каждой программы.

Алгоритм:

  1. Начало:
  2. Вводa, b, c, d;
  3. Еслиb*d – четно, выводb,d,b*d, иначе выполнять дальше;
  4. Если a+c>150,вывод a, b, c, d, a+c;
  5. Еслиb*d – четно Иa+c>150, выводb*d,a+c, иначе выводa,b,c,d;
  6. Конец.

Блок-схема:

Исходныйкод:

program lab_4_4_4;

var a, b, c, d: integer;

begin

writeln;

writeln ('Введите a, b, c, dчерезпробел');

readln (a,b,c,d);

if (b*d mod 2) = 0 then begin

 writeln (' b = ',b);

 writeln (' d = ',d);

writeln ('Произведение b и d равно ',b*d);

end;

if a+c>150 then begin

writeln ('Введенные числа: ',a,b,c,d);

writeln ('Сумма aи cравна ',a+c);

end;

 if ((b*d mod 2)=0) AND ((a+c)>150) then begin

writeln ('Произведение b и d равно ',b*d);

writeln ('Сумма aи cравна ',a+c);

  end

   else

    writeln ('Введенныечисла: ',a,b,c,d);

readln;

end.

Работа программы: снимок экрана №7




Похожие работы, которые могут быть Вам интерестны.

1. Управляющие структуры VBA

2. КНИ и КМОП структуры

3. Формирование структуры БД библиотеки

4. Проектные структуры управления

5. Характеристика структуры системы образования

6. Анализ производственной структуры предприятия

7. Проблемы и пути совершенствования организационной структуры

8. Исследование структуры и семантики слогана кинофильма

9. Анализ структуры российского банковского рынка

10. ВЫБОР СТРУКТУРЫ КАПИТАЛА НА РАЗВИВАЮЩИХСЯ РЫНКАХ