Язык Си является универсальным языком программирования. Первоначально он появился в операционной системе UNIX, и развивался как основной язык систем, совместимых с ОС UNIX. Сам язык, однако, не связан с какой-либо одной операционной системой или машиной; и хотя его называют языком системного программирования, так как он удобен для написания операционных систем, он может использоваться для написания любых больших вычислительных программ, программ для обработки текстов и баз данных.
Лабораторная работа №1
Работа в интегрированной среде Borland С на примере программ линейной структуры
1. ЦЕЛЬ РАБОТЫ: приобретение практических навыков работы в интегрированной среде Borland C, изучение структуры программы на языке С.
ОСНОВНЫЕ СВЕДЕНИЯ
Чаще всего линейные алгоритмы используются для программирования вычислений по формулам. В этом случае удобно использовать набор стандартных функций Си, содержащихся в заголовочном файле math.h :
Sin (x) — sin x; cos (x) – cos x ; tan(x) — tg х ; log (x) — ln x; log10(x) – lg x; exp(x) — показательная функция e x ; sqrt (x)- корень квадратный от х; роw(x, y) – x в степени y; abs(x)- модуль x.; acos(x) – arccos x; asin(x) – arcsin x; atan(x)- arctg x; sinh(x)- sh x; cosh (x) – ch x; tanh(x)-th x.
ОПИСАНИЕ АЛГОРИТМА ГРАФИЧЕСКИМ СПОСОБОМ РАЗВЕТВЛЁННОЙ СТРУКТУРЫ
Для тригонометрических функций аргумент х измеряется в радианах и имеет тип double, как и значения функций.
Пример программы линейной структуры:
Вычислить площадь и стороны прямоугольного треугольника, если известны гипотенуза c и угол x. Для вычислений воспользуемся формулами :
a=c×sin x; b=c×cos x; S=ab ;
Программа вычислений имеет вид:
//lab1_1 вычисление высот и площади треугольника
#include //заголовочный файл для организации ввода-вывода
#include //заголовочный файл математических функций
main() //главная функция
printf (“n Введите гипотенузу и угол треугольника ”);
scanf (“%f%f “,x); // ввод значений вещественного типа
printf (“n Результаты: a=%7.2f b=%7.2f S=%7.2f “,a, b, S);
Комментарий в программе не влияет на компиляцию программы, а служит для разъяснения действий основных блоков текста и программы в целом. Однострочный комментарий действует от двух символов // до конца строки. Многострочный комментарий заключается в пары символов /* и */.
Вторая строка программы #include является директивой компилятора для включения заголовочного файла stdio.h , в котором содержатся средства ввода-вывода (связи с внешними устройствами), отсутствующие в самом языке Си. Третья строка — #include является директивой компилятора для включения заголовочного файла math.h, обеспечивающего выполнение математических функций.
Программа на языке Си состоит из ряда функций, из которых функция main (главная) является обязательной и служит точкой входа в программу. В круглые скобки заключаются параметры функции, причем наличие круглых скобок обязательно, если даже список параметров пуст. В фигурные скобки заключаются составной оператор (несколько операторов). Для придания тексту программы наглядности открывающая и соответствующая ей закрывающая фигурные скобки печатаются на одном уровне, а заключенный между ними текст, сдвигается на 1-2 символа вправо, вложенный блок также сдвигается вправо и т.д. Образуется иерархия вложенных блоков, придающая программе на Си характерный вид.
СОЗДАНИЕ ПСЕВДОКОДА И ПРОГРАММЫ НА ЯЗЫКЕ PASCAL ЦИКЛИЧЕСКОЙ СТРУКТУРЫ C ПАРАМЕТРОМ
В программе описаны переменные a, b, c, х, S вещественного типа (float). В отличие от других языков в Си учитывается регистр при определении имени переменной, т.е. s и S – разные переменные. Функции printf и scanf содержатся в заголовочном файле stdio.h и служат для вывода на экран и ввода с клавиатуры соответственно. Управляющие символы n в функции printf служат для перевода на новую строку.
Символ служит для выхода из функции main в Интегрированную Среду, 0 является признаком успешного окончания программы. Завершает текст программы закрывающая фигурная скобка, означающая конец функции main.
ВЫПОЛНЕНИЕ РАБОТЫ
3.1. Наберите и выполните приведенную выше программу вычисления высот треугольника по заданным сторонам.
3.2. Составьте и выполните программу линейной структуры согласно вариантам заданий.
Варианты заданий
Вычислить значение функции переменных при заданных значениях параметров:
1. x=4y 2 /(4z-2t 3 ) при t=1 ; z=3; y=sin t.
2 x=4y 3 -z/t при t=2; z=3; y=cos(t+z).
3. x=6t 2 -(z+1)/y 2 при y=2; z=4; t=sin(2+z).
4. x=(8z 2 +1)/(y+t 2 ) при z=1; t=2; y=t+z.
5 x=8z / (e t +2)-y 2 при t=3; z=ctg t +2; y=4.
6. x=8z/(e t +2)-y 2 при t=1; z=t+2; y=4.
7. x=2y+3 sh t- z при y=2; t=5 / (1+y 2 ); z=4
8. x=3 y 2 / (4 tg z-2t 2 ) при t=0.5; z=6; y=t+2 ctg z.
9. x=4y 2 /( 4y e z — 2t 3 ) при t=1 ; z=3; y=sin t.
10. x=4 ln y 3 -z / t при t=2; z=3; y=cos(t+z).
11. x=6 t 2 — (ctg z+1)/ y 2 при y=2; z=4; t=sin(2+z).
12. x=(8z 2 +1)/( y e t +t 2 ) при z=1; t=2; y=tg t+z.
КОНТРОЛЬНЫЕ ВОПРОСЫ
4.1. Что такое алгоритм линейной структуры, программа линейной структуры?
4.2. Для чего используются заголовочные файлы?
4.3. Структура программы на языке Си.
Лабораторная работа №2
Программы разветвлённой структуры
1. ЦЕЛЬ РАБОТЫ: приобретение практических навыков в составлении алгоритмов и программ разветвленной структуры.
ОСНОВНЫЕ СВЕДЕНИЯ
Алгоритм разветвленной структуры — это алгоритм, в котором вычислительный процесс осуществляется по одной из ветвей. Если количество ветвей две – то используется условный блок, если больше – то множественный выбор. В программах используют соответственно условный оператор IF или оператор SWITCH для реализации разветвленного алгоритма.
Условный оператор IF
Условный оператор в языке Си имеет формат:
(полная форма) или
if (условие) оператор1; (сокращенная форма).
Если оператор1 и оператор2 состоят из одного оператора, то в фигурные скобки они не заключаются. Если оператор1 и/или оператор2 являются составным оператором (несколько операторов), то он заключается в фигурные скобки. Условие всегда заключается в круглые скобки.
В качестве примера приведем программу вычисления наибольшего из значений функции y1=x²+1, y2=7-x² , y3=x+1 для любого х.
printf(«Введите xn»); scanf(“%f “,
y1=x*x+1; y2=7-x*x; y3=x+1;
printf (“x=%8.2f y1=%8.2f y2=%8.2f y3=%8.2f max=%8.2fn”,x,y1,y2,y3,max);
Предыдущая 1 234567Следующая
Не нашли, что искали? Воспользуйтесь поиском по сайту:
Источник: stydopedia.ru
ЛАБОРАТОРНАЯ РАБОТА №2. Разработка программ разветвленной структуры
Цель работы приобретение практических навыков составления программ разветвленной структуры, изучение базовых алгоритмов разветвляющихся структур.
Краткие теоретические сведения
Разветвляющимися алгоритмическими структурами называются такие структуры, в которых порядок выполнения блоков операторов определяется значениями логических выражений. Разветвляющийся алгоритм может состоять из нескольких ветвей, каждая из которых может содержать любую, сколь угодно сложную, алгоритмическую структуру. В процессе работы разветвляющегося алгоритма в первую очередь вычисляютсялогические выражения(частнымслучаем логического выражения является логическая переменная или константа). Если результат вычисления логического выражения принимает значение True (Истина), то выполняется часть алгоритма, расположенная по ветви «Да», если значение – False (Ложь), то – по ветви «Нет».
Наиболее часто используются три типа разветвлений. Стандартное разветвлениесодержит функциональные блоки как в ветви «Да», так и в ветви «Нет». Усеченное разветвлениесодержит функциональные блоки только в ветви «Да» или только в ветви «Нет». Вложенное разветвлениевключает одно или несколько разветвлений.
Логические выражения, в отличие от арифметических, содержат операции отношения (=, , =, <>), а также еще пять логических операций, записанных далее в порядке убывания приоритета: отрицание — NOT, логическое умножение (логическое “И”) — AND, логическое сложение (логическое “ИЛИ”) — OR, исключающее “ИЛИ” — XOR, эквивалентность — EQV.
Логическое выражениеможет содержать либо простое, либо сложное условие. Простое условие – это два арифметических или строковых выражения, соединенных операцией отношения.
Операции отношения | Значение |
= | Равно |
Меньше чем | |
> | Больше чем |
Меньше или равно | |
>= | Больше или равно |
<> | Не равно |
Сложное условие, в отличие от простого условия, содержит логические операции — NOT, AND, OR, XOR и др.:
· AND(и) – возвращает значение Истина, если все участвующие в операции выражения имеют значение Истина;
· OR(или) – возвращает значение Истина, если хотя бы одно из участвующих в операции выражений имеет значение Истина;
· XOR(исключающее или) – возвращает значение Истина, если только одно из выражений Истина;
· NOT(операция отрицания) – возвращает обратное для значения выражения значение, то есть если выражение TRUE, вернет FALSE и наоборот.
Ниже представлена таблица истинности основных логических операций.
Значения операндов | NOT x | x AND y | x OR y | x XOR y | х EQV y | |
X | Y | |||||
T | T | F | T | T | F | T |
T | F | F | F | T | T | F |
F | T | T | F | T | T | F |
F | F | T | F | F | F | T |
Рассмотрим примеры простых условий:
Логическое выражение | Результат |
5 < 10 | True, так как 5 меньше 10 |
5 > 10 | False,так как5 не больше 10 |
7 <> 3 | True, так как 7 не равно 3 |
X > 45 | True,если X больше 45; в противном случае False |
5-1 > 1+2 | True,вначале вычисляется разность 5-1 (4), |
затем вычисляется сумма 1+2 (3) и наконец, проверяется условие 4 > 3, т.е. 4 больше 3 |
Порядок выполнения конструкции следующий: если значение логического выражения LравноTrue, то выполняется оператор (или операторы), стоящий после Then, в противном случае выполняются операторы, стоящие после Else. Конструкция Else может отсутствовать (в формате она взята в квадратные скобки) – случай усеченного разветвления.
If Then [Else ]
Примеры: If x mod 3=0 Then TextBox4.Text= “Число кратное 3”
If x<>0 Then K=K+1: S=S+X
Ifx > 0Theny=SQR(x)Elsey=1
If Then
[ Else
End If
Блочный оператор IF …END IF
Оператор IF блочной структуры имеет следующую конструкцию:
If Then
[ ElseIf Then
ElseIf Then
ElseIf Then
Else
End If
Последовательно выполняется проверка истинности выражений. Если истинно, выполняется блок и переход к оператору, следующему за END IF, иначе выполняется проверка истинности и т.д. Если ни одно из выражений не соответствует требованиям истинности, выполняется блок операторов ELSE, если он имеется, иначе — оператор, следующий за END IF.
TextBox2.Text =“x принадлежит интервалу [a,b]”
Конструкция Select Case позволяет обрабатывать в программе несколько условий и аналогична блоку конструкций IF…Then…End IF. Эта конструкция состоит из анализируемого выражения и набора операторов Case на каждое возможное значение выражения. В первую очередь вычисляется значение заданного выражения. Затем полученное значение сравнивается со значениями, задаваемыми в операторах Case. Если найдено искомое значение, выполняются операторы, приписанные данному оператору Case. Если искомое значение не найдено, выполняются операторы за ключевым словом Case Else:
Select Case
Case
[Case
Case
Case Else
End Select
Примеры оформления условий в операторе Select :
Case Is >100 ‘ проверка на превышение значения 100; Case x^2 ‘ проверка на равенство значению выражения; Case -10 To 10 ‘ проверка на принадлежность отрезку [-10,10]; Case 0 To 5, 12 To 19, 7, -2.5, Is > Sred |
Ключевое слово Is говорит компилятору о том, что требуется сравнить переменную с выражением, указанным после ключевого слова Is. Ключевое слово То определяет диапазон значений. Запятая в списке условий обозначает логическое OR.
2.2.1. Задание на разработку проекта и вариант задания ИДЗ №1 (индивидуальное задание №1)
Написать программный код для вычисления выражения Y:
Источник: megaobuchalka.ru
Программирование алгоритмов разветвленной структуры
Цель работы – ознакомление с особенностями программирования алгоритмов разветвленной структуры, а также использования различных операторов перехода.
2.1 Алгоритмы разветвленной структуры. Операторы перехода и выбора
Ветвящимся (разветвленным) называется алгоритм, в котором в зависимости от исходных данных или промежуточных результатов вычисления реализуется по одному из нескольких заранее предусмотренных (возможных) направлений, называемых ветвями вычислений.
Оператор условного перехода реализует разветвление алгоритма и применяется, когда в зависимости от условия необходимо выполнить либо одно, либо другое действие. В качестве условий используются логические отношения. Логические отношения представляют собой записи равенств и неравенств: , =, =,<> (не равно), AND (логическое «и»), OR (логическое «или»). В Паскале оператор условного перехода имеет две конструкции (таблица D1).
В Паскале принят порядок выполнения операторов согласно их следованию в программе. Если необходимо обойти какую-то группу операторов, то используется оператор безусловного перехода, который в блок-схеме отображается в виде стрелки, а не отдельного блока (таблица D1). Метка, используемая в операторе, показывает, что дальнейшая работа должна проводиться в другой части программы, с той строки, на которую она указывает и должна быть предварительно описана в разделе Label (например, Goto NM;). Этот оператор используется только в исключительных ситуациях, поскольку такие переходы разрушают связи между структурой программы и структурой вычислений, что приводит к потере ясности программы и затрудняет задачу верификации (доказательства правильности составления программы).
Кроме оператора безусловного перехода, в Турбо Паскале 7.0 иногда используются четыре безусловные функции:
— Break – позволяет досрочно закончить цикл;
— Continue – позволяет начать новую итерацию цикла, не дожидаясь окончания предыдущей итерации;
— Exit – позволяет завершить работу текущего программного блока (программу, процедуру);
— Halt(n) – позволяет завершить работу программы с кодом завершения n.
К операторам разветвляющейся структуры относится также оператор выбора (варианта), позволяющий программировать сложные ветвления, когда имеется несколько (обычно равновероятных) вариантов действия (таблица D1).
2.2 Примеры решений задач разветвленной структуры
2.2.1 Вычислить |
Program primer2_1; Label m1; Var i, n:integer; x, y:real; Begin Write(‘Введи N’); Read(n); i:=1; m1: Write(‘Введи x’); Read(x); If x=0)and(x <=1) then y:=0 else y:=sin (x); write (‘Y=’,y:10:3); i:=i+1; if i<=n then goto m1 end. |
Рисунок 2.1 — Блок-схема алгоритма и программа разветвленной структуры
2.2.2 В старояпонском календаре принят 60-летний цикл, состоящий из пяти 12-летних малых циклов. Малые циклы обозначаются названиями цвета. Внутри каждого малого цикла годы носят названия животных. Определить название заданного года нашей эры по японскому календарю. Так как в данном случае блок-схема получается достаточно громоздкой, ниже приведена только программа решения задачи.
Var year, i, k: integer;
Write (‘Введите год’); Read (year); Write (‘- the year of the ‘);
i:= (year-3) mod 12; k:= (3010 – year) mod 60 div 12;
Источник: studopedia.info