21772

Условный оператор if и оператор выбора switch

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

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

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

Русский

2014-03-24

785.71 KB

19 чел.

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

по дисциплине “Языки программирования”

Лабораторная работа № 2. Условный оператор if и оператор выбора switch

Цель работы

Целью данной лабораторной работы является изучение на практике условного оператора и оператора выбора языка ANSI C.

Задача лабораторной работы

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

Задание

Модифицировать программу из лабораторной работы №1 с учетом следующих требований:

а) Осуществить проверку входных значений на принадлежность области определения функции (e.g. функция y = log(x) определена для x ≥ 0). Вывести сообщение об ошибке, если входные значения не принадлежат области определения функции.

б) Добавить ввод значения для выбора функции (1 - вычислить функцию G, 2 - вычислить функцию F, 3 - вычислить функцию Y; при ином введенном значении вывести сообщение об ошибке).

Блок-схема основной программы и дополнительных функций

Составим схему программы

Листинг программы:

#include <stdio.h>

#include <stdlib.h>

#include <math.h>

#include <conio.h>

const double PI = 3.14159265;

void f_G(float a, float x)

{

 float G;

 float gg;

 gg = 25 * a * a + 30 * a * x + 9 * x * x;

 

 if (gg == 0 )

 {

   printf("G - Zero division\n");

 }

 else

 {

 G = 9 * (7 * a * a - 19 * a * x + 10 * x * x) / gg;

   printf("G = %f\n",G);

 }

 return;

}

void f_F(float a, float x)

{

 float F;

 float ff;

 ff = 9 * a * a - 13 * a * x - 10 * x * x;

 F = cos(ff);

 printf("F = %f\n",F);

 return;

}

void f_Y(float a, float x)

{

 float Y;

 float yy;

 yy = -80 * a * a - 46 * a * x + 21 * x * x + 1;

 if (yy<0)

 {

   printf("Y - Argument negativ\n");

 }

 else

 {

   Y = logf(yy)/logf(10.0);

   printf("Y = %f\n",Y);

 }

 return;

}

void menu(float a, float x)

{

 int ch;

 do 

 {

   system("cls");

printf("a = %f ,  x = %f\n",a,x);

   printf("******MENU*******\n");

   printf("F1. Function 1\n");

   printf("F2. Function 2\n");

   printf("F3. Function 3\n");

   printf("ESC. Exit...\n");

   ch = _getch();

   switch (ch)

   {

   case 0: { switch (_getch())

              {

               case 59:      //F1

                 f_G(a,x);

                 system("pause");

                 break;

               case 60:      //F2

                 f_F(a,x);

                 system("pause");  

                 break;                                

               case 61:     //F3

                 f_Y(a,x);

                 system("pause");

                 break;

              }

           break;   

           }

   }

 } while (ch !=27);

 return;                 

}

int main()

{

 printf("Hello world!\n");

 _flushall();

 float a,x;

 printf("Enter a:");

 scanf_s("%f",&a);

 _flushall();

 printf("Enter x:");

 scanf_s("%f",&x);

 

 menu(a,x);

 

 

 system("pause");

 return 0;

}


Тестирование программы


Выводы по работе

В ходе выполнения лабораторной работы я изучил особенности  написания  программы  на языке ANSI C, в основе которой лежит алгоритм структуры с условиями и выбора,  а также основы работы в интегрированной среде MS Visual Studio 2010.


 

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

67573. Смежные классы; разложение группы по подгруппе 179.5 KB
  Множество xH называется левым а Hx правым смежным классом группы по подгруппе. Например очевидно что H=H=H так что подгруппа Н сама является одним из смежных классов. Свойства смежных классов Отображение определенное формулой является взаимно однозначным для всякого.
67574. Изоморфизмы и гомоморфизмы 290 KB
  Напомним, что отображение называется инъективным, если оно переводит различные элементы из X в различные элементы Y и сюръективным, если его образ совпадает со всем Y. Например, естественный гомоморфизм группы на подгруппу сюръективен. Из определения сразу следует, что гомоморфизм...
67575. Циклические группы 169 KB
  Определение Группа G называется циклической если все ее элементы являются степенями одного элемента. Примеры циклических групп: Группа Z целых чисел с операцией сложения. Группа всех комплексных корней степени n из единицы с операцией умножения. Поскольку группа является циклической и элемент g = образующий.
67576. Коммутативные группы с конечным числом образующих 181.5 KB
  Группа Q рациональных чисел с операцией сложения не является г.к.о. В самом деле, если - любые рациональные числа, записанные в виде отношения целых, то, приводя к общему знаменателю сумму, получим дробь, знаменатель которой не превосходит...
67577. Коммутативные группы с конечным числом образующих. Классификация 209.5 KB
  Для нулевой матрицы теорема очевидно верна. Будем считать, что А0. Выберем из множества ненулевых элементов А любой из наименьших по модулю и назовем его главным элементом А. Абсолютная величина главного элемента будет обозначаться h(A). Таким образом для любого ненулевого элемента этой матрицы.
67578. Коммутативные группы с конечным числом образующих. Следствия из классификации 278 KB
  Теорема о подгруппах группы Всякая подгруппа группы изоморфна причем . Мы знаем что подгруппа G группыимеет не более чем n образующих и потому для нее можно записать первое каноническое разложение: где mk n. Теорема о подгруппах конечной коммутативной группы.
67579. Множества с двумя алгебраическими операциями. Кольца и поля 192.5 KB
  Множество с двумя алгебраическими операциями R называется кольцом если R абелева группа аддитивная группа кольца R. Элементы такого кольца R имеющие обратные относительно операции умножения называются обратимыми а их множество обозначается через...
67580. Кольцо многочленов над полем 139.5 KB
  Кольцо многочленов над полем в отличие от случая многочленов над кольцом обладает рядом специфических свойств близких к свойствам кольца целых чисел Z. Делимость многочленов. Хорошо известный для многочленов над полем R способ деления углом использует только арифметические действия...
67581. Мультипликативная группа поля. Неприводимые многочлены 271.5 KB
  Имеет место фундаментальная теорема Гаусса: Всякий многочлен положительной степени над полем C имеет корень. Из нее вытекает что над полем C неприводимы только многочлены первой степени. Пусть теперь многочлен положительной степени. Следовательно над полем R неприводимыми будут во первых все многочлены...