Студопедия

КАТЕГОРИИ:

АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Порядок выполнения лабораторной работы




1) Запустить программу Dev-C++.

2) Выполнить настройку программы: поддержку русской консоли и настройка режима отладки.

3) Создать исходный файл *.c и сохранить его на диске.

4) Подключить заголовочные файлы <stdio.h>, <windows.h>, <conio.h>, <math.h>.

5) Составить линейный алгоритм и программу определения значения функции в соответствие с индивидуальным заданием, для чего:

а) описать используемые константы;

б) в теле главной функции main описать используемые переменные;

в) выполнить чтение переменных, вводимые пользователем;

г) выполнить требуемые арифметические вычисления;

д) провести пошаговую отладку программы (Debug) с использованием слежения за переменными (Add Watch);

е) вывести результат функции на экран в требуемом виде.

6) Выполнить отчет по лабораторной работе.

Индивидуальные задания

Функция Переменные Константы
1. x = 14.26, y = –1.22 z = 3.5´10-2
2.   x = –4.5, y = 0.75 z = 0.845´102
3. x = 3.74, y = –0.825 z = 0.16´102
4. x = 0.4´104, y = – 0.875 z = –0.475´10-3
5. x = –15.246, y = 4.642 z = 20.001´102
6. x = 16.55,  y = 2.75 z = 0.15´102
7. x = 0.1722, y = 6.33 z = 3.25´10-4
8. x = –2.235, y = 2.23 z = 15.22´102
9. x = 1.825, y = 18.225 z = –3.298´10-2
10. x = 3.981, y = –1.625 z = 0.512´103
11. x = 6.251, y = 0.827 z = 25.001
12. x = 3.251, y = 0.325 z = 0.466´10-4
13. x = 17.421, y = 10.365 z = 0.828´105
14. x = 12.3, y = 15.4 z = 0.252´103
15. x = 2.444, y = 0.869 z = – 0.13´103
16. x = –2.235, y = 2.23 z = 15.221´10-2

 

Контрольные вопросы

1. Какие настройки Dev-Cpp необходимо выполнить перед началом работы?

2. Как выполнять отладку программы в Dev-Cpp?

3. Какие типы переменных применяются в языке С?

4. Перечислите основные отличия функций printf() и scanf().

 

ЛАБОРАТОРНАЯ РАБОТА № 2

Тема: «Программирование алгоритмов с ветвлениями»

Цель работы – изучить операции сравнения, логические операции, операторы передачи управления if и switch.

Теоретические сведения

2.1. Оператор условной передачи управления if

Для выбора одной из ветвей вычислений применяется оператор условного перехода:

            if (выражение) оператор 1;

                       else оператор 2;

вычисляется выражение, и если его значение не равно 0 (истинно), то выполняется оператор 1, иначе – оператор 2, например:                    

            if (x>y) max = x;

                 else max = y;

Если операторы 1, 2 содержат более одного оператора, то они заключаются в фигурные скобки { }, т.е. применяется блок.

Конструкция else… может отсутствовать и такую форму называют сокращенной, тогда в случае ложности условия управление передается на следующий за if оператор.

Если операторы 1, 2 в свою очередь являются операторами if, то такой оператор называют вложенным, при этом ключевое слово else принадлежит ближайшему предшествующему if.

Пример 2.1. Найти наибольшее значение из трех чисел x,y,z:

if (x>y)

if (x>z) max=x;

     else max=z;

else if(y>z) max=y;

        else max=z;

2.2. Операции сравнения

Операции сравнения: < (меньше), <= (меньше или равно), > (больше), >= (больше или равно), != (не равно), = = (равно).

Операции сравнения бинарные, их общий вид:

Операнд 1 <знак операции> Операнд 2

Операндами операций сравнения могут быть данные любых базовых типов, значения которых перед сравнением преобразуются к одному типу.

Логические операции используются в качестве условий при составлении более сложных выражений. Приведем их перечень в порядке убывания приоритета:

! (отрицание или логическое НЕ – унарная операция), && (конъюнкция или логическое И), || (дизъюнкция или логическое ИЛИ).

Пример 2.2.   (0<x)&&(x<=100)

                ((!x)&&(y>0)||((z==1)&&(k>0)).

Выражения вычисляются слева направо, причем их вычисление прекращается, как только результат становится известен.

1.3. Тернарная операция

Тернарная (условная) операция ?:

Ее общая форма:

Операнд 1 ? Операнд 2 : Операнд 3

Если значение операнда 1 истинно (не равно 0), то результатом операции является операнд 2, иначе – операнд 3.

Пример 2.3. Найти наибольшее из двух чисел:
max = a>b ? a : b;

1.4. Оператор выбора switch

Общая форма оператора выбора (переключателя):

            switch(выражение) {

        case const_1: операторы; break;

                                                 …

        case const_N: операторы; break;

        default: операторы;

             }

Вычисляется выражение и проверяется, совпадает ли его результат со значением одной из констант. При совпадении выполняются операторы этого case. Значе-ниями const_1,…, const_N могут быть только целые или символьные константы. Конструкция default выполняется, если результат выражения не совпал ни с одной из констант, и может отсутствовать. Оператор break выполняет досрочный выход из switch (после выполнения ветви case все остальные будут опущены). Если опе-ратор break в case не записан, то будут выполняться операторы следующих ветвей case до появления оператора break, либо до завершения оператора switch.

Пример 2.4.       

            switсh(i) {

                   case 1: f=pow(x,2); break;

                   case 2: f=fabs(x);      break;

                   case 3: f=sqrt(x);       break;

                   default: printf(“Ошибка!”); exit(1);

     }

            f=f+5;

Пример 2.5. Ввести значения исходных данных x, y и z. Вычислить значение функции.

Текст программы может иметь следующий вид:

#include <conio.h>                                              

#include <stdio.h>

#include <math.h>

int main()

{

double x, y, z, u;

puts("Input x, y, z");                             

scanf("%lf%lf%lf",&x, &y, &z); 

if (x*y > z){

           u = x*sin(y);

           puts(" x*y > z");            

}

else {

           u = y*cos(x);

           puts(" x*y <= z");                     

}

printf("\n\t Rezult U = %8.6lf", u);         

puts("\nPress any key ... ");                 

getch();}










Последнее изменение этой страницы: 2018-05-10; просмотров: 156.

stydopedya.ru не претендует на авторское право материалов, которые вылажены, но предоставляет бесплатный доступ к ним. В случае нарушения авторского права или персональных данных напишите сюда...