- •Основы программирования
- •Средства создания программ
- •Работа в интегрированной среде разработки программ turbo c (Borland c)
- •Основные функциональные клавиши и сочетания клавиш в Turbo c
- •Контрольные вопросы
- •Основы языка Си
- •Составляющие языка Си
- •Понятия алгоритмических языков (На примере языка Си)
- •Структура программы на языке Си
- •Директивы препроцессора
- •Главная функция
- •Переменные и массивы
- •Объявления переменных и массивов
- •Комментарии
- •Основные операции в Си
- •Арифметические операции
- •Логические операции и операции отношения
- •Операции присваивания
- •Функции ввода и вывода
- •Функция форматированного вывода printf( )
- •Функция форматированного ввода scanf( )
- •Функция неформатированного ввода getch( )
- •Функция неформатированного ввода gets( )
- •Функция неформатированного вывода puts( )
- •Программа – диалог
- •Контрольные к лабораторной работе «Программа-диалог»
- •Программа–тест
- •Контрольные вопросы к лабораторной работе «Программа-тест»
- •Конструкция switch/case/default
- •Операторы цикла
- •Цикл for
- •Стандартные математические функции
- •Пример выполнения лабораторной работы «Вычисление значения функции»
- •Контрольные вопросы к лабораторной работе «Вычисление значения функции»
- •Вложенные циклы.
- •Использование оператора break в циклах
- •Оператор continue
- •Оператор безусловного перехода goto
- •Действия с одномерными массивами
- •Инициализация массива
- •Ввод значений элементов массива с клавиатуры
- •Заполнение массива случайными числами
- •Вычисление суммы и произведения элементов массива
- •Поиск максимального элемента массива и его номера
- •Вычисление среднего арифметического
- •Перестановка элементов в массиве
- •Сортировка массива
- •Заполнение массива элементами из другого массива.
- •Контрольные вопросы к лабораторной работе «Одномерный массив»
- •Контрольные к лабораторной работе «Программа-диалог»
- •Контрольные вопросы к лабораторной работе «Программа-тест»
- •Контрольные вопросы к лабораторной работе «Вычисление значения функции»
- •Контрольные вопросы к лабораторной работе «Одномерный массив»
Пример выполнения лабораторной работы «Вычисление значения функции»
ПРИМЕР 20:
Задание
Дано: k,l,m Если k+l≠m вычислить и напечатать Если k+l=m вычислить и напечататьЕсли r < 0 вычисления закончить Если r = 0 напечатать “r=0” Если r > 0 вычислить и напечатать
Решение
Блок-схема |
Псевдокод |
Ввод k Ввод l Ввод m Pi=3.14; Если k+l≠m вычислить r = sqrt ( pow ( k , 3 ) + 1 ) - m печать r Если r < 0 вычисления закончить Если r = 0 печать “r=0” Если r > 0 вычислить d = 1 / tan ( 2 * l ) – 3 * sin ( m ) Печать d Если k+l=m вычислить z = sin ( Pi*pow (l , 3)) + pow ( m , 3 ) Печать z |
Программа | |
# include <stdio.h> # include <math.h> # include <conio.h> #define Pi 3.14 void main ( ) { float k, l, m, r, d, z; clrscr( ); printf(“\n k=”); scanf(“%f”,&k); printf(“\n l=”); scanf(“%f”,&l); printf(“\n m=”); scanf(“%f”,&m); if (k+l ! = m) { r = sqrt ( pow ( k , 3 ) + 1 ) – m; printf(“\n r=% .2 f”, r); if ( r > 0 ) { d = 1 / tan ( 2 * l ) – 3 * sin ( m ); printf(“\n d=%f”, d); } else if (r = = 0) puts (“\n r=0”); } else{ z = sin ( Pi*pow ( l , 3 ) ) + pow ( m , 3 ); printf(“\n z=%f”, z); } puts (“Нажмите любую клавишу. Конец программы “); getch( ); } |
/*1*/ /*2*/ /*3*/ /*4*/ /*5*/ /*6*/ /*7*/ /*8*/ /*9*/ /*10*/ /*11*/ /*12*/ /*13*/ /*14*/ /*15*/ /*16*/ /*17*/ /*18*/ /*19*/ /*20*/ /*21*/ /*22*/ /*23*/ |
Пояснение
Первая строка - это директива препроцессора, подключающая к программе средства связи с библиотечными функциями обмена ввода-вывода.
Вторая строка - это директива препроцессора, подключающая к программе средства связи с библиотечными математическими функциями.
Третья строка - это директива препроцессора, подключающая к программе средства связи с библиотечными функциями обмена консольного ввода-вывода.
В строке 4 в результате директивы определения осуществляется связывание, а затем замена символа Рi на значение 3.14.
Пятая строка является заголовком функции с именем main. Спецификатор типа - void - указывает, что функция main в данной программе не возвращает никакого значения. Вся дальнейшая программа представляет собой тело функции и заключена в фигурные скобки.
В строке 6 определены переменные действительного типа, используемые в программе.
В строке 7 используется функция очистки экрана, являющаяся функцией обмена консольного ввода-вывода.
В строках 8,9 и 10 осуществляется ввод с клавиатуры действительных переменных k, l и m.
В строке 11 находится оператор условия. Используется полная форма записи (в 18 строке находится ветвь «иначе»). Группа действий, относящихся к ветви «да» взята в фигурные скобки (до строки 17). В случае выполнения условия в строке 11, будут выполняться следующие действия:
Строка 11 – вычисление значения переменной r.
Строка 12 – вывод значения переменной r действительного типа на экран. Для вывода числа указано поле, ограничивающее при выводе только 2 знака после запятой.
Строки 13- 17 –Т.к. рассматривается возможность, что переменная r может принимать три вида значений (положительное, отрицательное и равное нулю), используется вложенная форма записи оператора условия.
В строках 13 и 15 указана группа операторов, прописывающая действия, если r примет положительное значение – вычисление значения d и вывод значения d на экран.
В строке 16 указано действие, выполняемое в том случае, если r примет значение равное нулю – вывод на экран комментария “ r=0”.
Если r примет отрицательное значение – вычисления нужно прекратить. Поэтому ветвь со вторым оператором else осталась пустой.
В 18 строке раскрывается ветвь «иначе» для условия из строки 11.
В 18 -20 строках вычисляется значение переменной z и её значение выводится на экран.
В 21 строке находится функция неформатированного вывода, используемая для подсказки, что программа закончена.
В 22 строке находится функция неформатированного ввода одного символа, используемая для приостановки программы до нажатия любой клавиши.
ПРИМЕР 21:
Задание
Дано: a,b.
Если вычисления закончить. Еслинапечатать «»
Если вычислить.
где изменяется от –1 до 3 с шагом 0,3.
Вывести на печать только отрицательные значения функции и подсчитать количество положительных значений функции.
Решение
Блок-схема |
Псевдокод | |
Ввод а Ввод b Если вычисления закончить Если печать «» Если k=0 Нц от x=-1 до 3 шаг 0.3 Если a=2 y=pow(tan(x+5),2) Если a<2 y=pow(x,2)-8*x Если a>2 y=1/sin(2*x)
Если y<0 печать y Если y>0 k=k+1 кц печать k
| ||
Программа |
| |
# include <stdio.h> # include <stdlib.h> # include <math.h> # include <conio.h> void main ( ) { float a, b, x, y; int k; clrscr( ); printf(“\n а=”); scanf(“%f”,&a); printf(“\n b=”); scanf(“%f”,&b); if (a= = b) printf (“Нажмите любую клавишу. Конец программы “); else if (a> b) printf (“\n a>b”); else { k=0; for(x=-1; x<=3; x+=0.3) { if (a= = 2) y= pow(tan(x+5),2); else if (a<2) y=pow(x,2)-8*x; else y=1/sin(2*x); if(y<0) printf(“\n При x=%5.2f y=%f”, x, y); else if(y>0) k++; } printf(“\n Количество значений переменной y>0 равно %d”,k); } getch( );} |
/*1*/ /*2*/ /*3*/ /*4*/ /*5*/ /*6*/ /*7*/ /*8*/ /*9*/ /*10*/ /*11*/ /*12*/ /*13*/ /*14*/ /*15*/ /*16*/ /*17*/ /*18*/ /*19*/ /*20*/ /*21*/ /*22*/ /*23*/ |