Программы разветвлённой структуры



Сибирский государственный университет

телекоммуникаций и информатики

 

И Н Ф О Р М А Т И К А

 

Раздел: Язык программирования Borland С

 

 

Методические указания

 

Новосибирск – 2011

           


Данные методические указания включают в себя 12 лабораторных работ для изучения языка программирования высокого уровня Си. Эти работы помогут студентам освоить как базовые понятия программирования на алгоритмическом языке Си (интегрированная среда, программы разветвляющейся и циклической структуры, массивы), так и более сложные вопросы (рекурсии, функции, работа с файлами, работа с динамической памятью).

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

         

СОДЕРЖАНИЕ

 

 

Введение …………………………………………………………………………. 3

Лабораторная работа №1. Работа в интегрированной среде BORLAND C

на примере программ линейной структуры……………..……………………….. 3

Лабораторная работа № 2 Программы разветвленной структуры……..…….…5

Лабораторная работа № 3Программы циклической структуры……….….… 9

Лабораторная работа № 4Обработка статических массивов………..………..11

Лабораторная работа № 5Работа с символьными данными ………..………...13

Лабораторная работа № 6Функции …………………………………………...15

Лабораторная работа № 7Рекурсии..……..………………………….……..…...20

Лабораторная работа № 8Структуры….…………………………….……..…...21

Лабораторная работа № 9Программные средства для работы с файлами……24

Лабораторная работа № 10 Обработка бинарных файлов в прямом режиме ..27

Лабораторная работа № 11 Динамические массивы…………………………...32

Лабораторная работа № 12 Динамические структуры данных………………...36

 


Введение

Язык Си является универсальным языком программирования. Первоначально он появился в операционной системе 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) - показательная функция ex ; 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 <stdio.h> //заголовочный файл для организации ввода-вывода  

 #include <math.h>  //заголовочный файл математических функций

 main() //главная функция

 { float a,b,c,x, S; //описание переменных вещественного типа

printf (“\n Введите гипотенузу и угол треугольника ”);

scanf (“%f%f “,&c,&x); // ввод значений вещественного типа

a=c*sin(x);

b=c*cos(x);

S=a*b;

printf (“\n Результаты: a=%7.2f    b=%7.2f      S=%7.2f “,a, b, S);

return 0;

 }

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

Вторая строка программы #include <stdio.h> является директивой компилятора для включения заголовочного файла stdio.h , в котором содержатся средства ввода-вывода (связи с внешними устройствами), отсутствующие в самом языке Си. Третья строка - #include<math.h> является директивой компилятора для включения заголовочного файла math.h, обеспечивающего выполнение математических функций.

Программа на языке Си состоит из ряда функций, из которых функция main (главная) является обязательной и служит точкой входа в программу. В круглые скобки заключаются параметры функции, причем наличие круглых скобок обязательно, если даже список параметров пуст. В фигурные скобки заключаются составной оператор (несколько операторов). Для придания тексту программы наглядности открывающая и соответствующая ей закрывающая фигурные скобки печатаются на одном уровне, а заключенный между ними текст, сдвигается на 1-2 символа вправо, вложенный блок также сдвигается вправо и т.д. Образуется иерархия вложенных блоков, придающая программе на Си характерный вид.  

В программе описаны переменные a, b, c, х, S вещественного типа (float). В отличие от других языков в Си учитывается регистр при определении имени переменной, т.е. s и S – разные переменные. Функции printf и scanf содержатся в заголовочном файле stdio.h и служат для вывода на экран и ввода с клавиатуры соответственно. Управляющие символы \n в функции printf служат для перевода на новую строку. Символ & в функции scanf указывает на адрес вводимой переменной. Ввод и вывод переменных вещественного типа производится в формате f. Признаком форматного вывода в функции printf является %. При выводе между знаком процента и форматной переменной f можно включить общую ширину поля вывода и число позиций после десятичной точки. Оператор return 0; служит для выхода из функции main в Интегрированную Среду, 0 является признаком успешного окончания программы. Завершает текст программы закрывающая фигурная скобка, означающая конец функции main.

 

 

ВЫПОЛНЕНИЕ РАБОТЫ

3.1. Наберите и выполните приведенную выше программу вычисления высот треугольника по заданным сторонам.

3.2. Составьте и выполните программу линейной структуры согласно вариантам заданий.

                            

Варианты заданий

 

Вычислить значение функции переменных при заданных значениях параметров:

 

1. x=4y2/(4z-2t3)           при t=1 ; z=3; y=sin t.

2 x=4y3-z/t                    при t=2; z=3; y=cos(t+z).

3. x=6t2-(z+1)/y2           при y=2; z=4; t=sin(2+z).

4. x=(8z2+1)/(y+t2)        при z=1; t=2; y=t+z.

5 x=8z / (et+2)-y2           при t=3; z=ctg t +2; y=4.

6. x=8z/(et+2)-y2             при t=1; z=t+2; y=4.

7. x=2y+3 sh t- z      при y=2; t=5 / (1+y2); z=4

8. x=3 y2/ (4 tg z-2t2)   при t=0.5; z=6; y=t+2 ctg z.

9. x=4y2 /( 4y ez - 2t3)   при t=1 ; z=3; y=sin t.

10. x=4 ln y3-z / t       при t=2; z=3; y=cos(t+z).

11. x=6 t2- (ctg z+1)/ y2 при y=2; z=4; t=sin(2+z).

12. x=(8z2+1)/( y et +t2) при z=1; t=2; y=tg t+z.

 

КОНТРОЛЬНЫЕ ВОПРОСЫ

4.1. Что такое алгоритм линейной структуры, программа линейной структуры?

4.2. Для чего используются заголовочные файлы?

4.3. Структура программы на языке Си.

 

 

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

Программы разветвлённой структуры

1. ЦЕЛЬ РАБОТЫ: приобретение практических навыков в составлении алгоритмов и программ разветвленной структуры.

 

ОСНОВНЫЕ СВЕДЕНИЯ

Алгоритм разветвленной структуры - это алгоритм, в котором вычислительный процесс осуществляется по одной из ветвей. Если количество ветвей две – то используется условный блок, если больше – то множественный выбор. В программах используют соответственно условный оператор IF или оператор SWITCH для реализации разветвленного алгоритма.

 

Условный оператор IF

Условный оператор в языке Си имеет формат:

if (условие)

оператор1;

else

оператор2; 

(полная форма) или

if (условие) оператор1; (сокращенная форма).

Если оператор1 и оператор2 состоят из одного оператора, то в фигурные скобки они не заключаются. Если оператор1 и/или оператор2 являются составным оператором (несколько операторов), то он заключается в фигурные скобки. Условие всегда заключается в круглые скобки.

В качестве примера приведем программу вычисления наибольшего из значений функции y1=x²+1, y2=7-x² , y3=x+1 для любого х.

 

 //lab2_1

 #include <stdio.h>

main()

 { float x,y1,y2,y3,max;

printf("Введите x\n"); scanf(“%f “,&x);

y1=x*x+1; y2=7-x*x; y3=x+1;

if (y1>y2)

     max=y1; 

else

     max=y2;

if (y3>max)

     max=y3;

   printf (“x=%8.2f y1=%8.2f y2=%8.2f y3=%8.2f max=%8.2f\n”,x,y1,y2,y3,max);

}


Дата добавления: 2019-01-14; просмотров: 339; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!