Студопедия

КАТЕГОРИИ:

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

Содержание отчета и его форма




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

– тему, цель лабораторной работы;

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

Контрольные вопросы и защита работы

1. Правила объявления и инициализации строк в Си.

2. Функции обработки строковых данных.

3. Что такое структура? Как обратиться к полю структуры?

4. Как ввести структуру?

5. Может ли существовать массив структур? Можно ли в вашей программе использовать массив структур?

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

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

ПОЛЬЗОВАТЕЛЬСКИЕ ФУНКЦИИ в С++

Цель работы: Изучение методов использования функций в языке Си.

Теоретическое обоснование

Часто в программе требуется повторить определенную последовательность операторов в разных частях программы. Для того, чтобы описывать эту последовательность один раз, а применять многократно, в языках программирования применяются подпрограммы. Подпрограмма – автономная часть программы, выполняющая определенный алгоритм и допускающая обращение к ней из различных частей общей программы. Использование подпрограмм позволяет реализовать один из самых современных методов программирования – структурное программирование.

В языке С/C++ существует один вид подпрограмм – функции. Каждая программа в своем составе должна иметьглавную функцию main(), служащей точкой входа в программу. Кроме функции main(), в программу может входить произвольное число функций, выполнение которых инициализируется либо прямо, либо вызовами из функции main(). Каждая функция по отношению к другой является внешней. Для того, чтобы функция была доступной, необходимо, чтобы до ее вызова о ней было известно компилятору. Форма записи функции:

<тип > <имя_функции>(<формальные параметры>){<тело функции >}

Если тип возвращаемого функцией значения не указан, то подразумевается int. Параметры, записываемые в обращении к функции, называются фактическими; параметры, указанные в описании функции – формальными. Фактические пара­метры должны соответствовать формальным по количеству, порядку следования и типу. Параметры, объявленные в основной программе, действуют в любой функции и называются глобальны­ми. Параметры, объявленные в функции, действуют только в ней и называются локальными. Все формальные параметры являются локаль­ными для данной функции. В теле функции должен быть хотя бы один оператор return <выражение>, определяющий возвращаемое функцией значение. Вызов функции может быть оформлен в виде оператора, если у функции отсут­ствует возвращаемое значение, или в виде выражения, если существует возвращаемое значение. При вызове функции устанавливаетcя взаимно однозначное соответствие между фактическими и формальными параметрами, затем управление передается функции. После ее выполнения управ­ление передается следующему, после вызова функции, оператору вызывающей программы. Прототип функции может указываться до вызова функции вместо описания функции для того, чтобы компилятор мог выполнить проверку соответствия типов аргументов и параметров. Прототип функции по форме такой же, как и заголовок функции, в конце его ставится «;». Функции можно подключать с помощью директивы #include <имя файла>. Функции удобно использовать в диалоговых программах с пользовательским меню, позволяющих выбрать один из режимов.

Пример 1:Составить программу, решающую одну из двух задач из предыдущих работ. Использовать меню для выбора решаемых задач.

#include <iostream.h>

#include <stdlib.h>

#include "lab_5.cpp" //подключение файла с функцией mas1

#include "lab_6.cpp" //подключение файла с функцией mas2

 int main()

 { int nom;

while (1) // Организация меню

{cout <<endl<< " 1. Work 1 " << endl;

cout << " 2. Work 2 "<< endl;

cout << " 3. Конец работы программы" << endl;

cout <<" Выберите 1, 2 или 3 : ";

cin>>nom;

switch (nom)

   { case 1: mas1( ); break;

      case 2:mas2(); break;

      case 3: return 0;

      default: cout <<" Такого режима нет \n";

    }

}

      return 0;}

В этой программе использованы функции mas1 и mas2 без параметров, которые содержат функции, решающие задания 1 и 2. Каждая из них должна иметь вид:

int mas1()

{ // операторы, выполняющие задание 1

return 0;

}

Пример 2. Функции c параметрами и прототипами. Составить программу, содержащую обращение к функции вычисления максимума из двух чисел:

# include <iostream.h>

  int max(int,int);    // прототип функции max                        

 main()                                                              

{ int x, y, z;

cout   <<" Поочередно введите х и у"<<endl; cin >>х>>y;

 z=max (х, y) ; //вызов функции max, где x,y– фактические параметры

cout << "Значение z= "<< z <<endl; 

    return 0;}

int max (int a, int b) // a,b– формальные параметры

{int с;              // локальная переменная

if (a>=b) c=a; else c=b;

    return с; }

Описание функции в примере 2 находится в одном файле с главной программой и объявляется в прототипе. Прототип функции mах() необходим компилятору для проверки соответствия типов аргументов и параметров при вызове функции. При вызове функции max значения аргументов х и у подставляются вместо параметров а и b соответственно. После выполнения тела функции возвращаемое значение c передается в место вызова функции и присваивается переменной z.

Функцию mах можно поставить вместо прототипа перед функцией main(). Так же описание функции max может находиться и в файле, например, maxim.cpp. При этом добавляется директива #include "maxim.cpp".

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

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

2. Проанализируйте приведенный в теоретической части пример 2. Создайте программу вычисления заданий по вариантам, приведенным в таблице 7.1.

Таблица 7.1 – Варианты заданий

Задание №     .Функции

Вариант Задание

Примечание

1 Даны х. Составить программу вычисления значения выражения

, y(x)=(8x2+1)/(xex+x2);

2 Дан x. Составить программу вычисления значения выражения

, где y(x)=8x/(ex+2)-x2;

3

Даны цены 10 товаров, которые увеличились на Р%. Используя функцию нахождения процента, найти их новые стоимости и общую стоимость 

4

Даны а и b. Используя функции нахождения min и max найти x=min(a,b), y=max(a,b). Вычислить значение выражения

5

Даны действительные числа а,b,c. Вычислить значения выражения

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

 

7 Для правильного треугольника со стороной а построены вписанная и описанная окружности. Найти площадь образовавшегося кольца, используя функцию вычисления площади круга S=πR2. Для нахождения радиусов окружностей воспользуйтесь формулами

,

 

8 На товар дважды была сделана скидка – на p1, а затем на p2 процентов. Первоначальная стоимость товара составляла S рублей. Используя функцию вычисления стоимости товара с учетом скидки на P процентов, найти стоимость товара после двойной скидки.

9

,    где f(x)=x2/( x3 +10) ; a=-2; b=5                     

10

,        f(x)=6x2-(ctg x+1)/ x2; a=2; b=4; т=10

11

Даны действительные числа s, t. Вычислить ,где

12

Даны действительные числа s, t. Вычислить  где

13

Даны действительные числа а,b,c. Вычислить

14 Сколькими способами можно отобрать команду в составе 5 человек из 8 кандидатов; из 10 кандидатов; из 11 кандидатов.                                         

Выбрать k человек из n кандидатур можно С способами, где

15 Составить программу вычисления высот треугольника со сторонами ai,bi,ci (i=1,2,3,4)

Высоты треугольника определяются по формулам: Ha=2S/ai ; Hb=2S/bi ; Hc=2S/ci,

S=√p*(p-ai)*(p-bi)*(p-ci) ;  

16

Два спортсмена одновременно начинают движение из одной точки. Первый спортсмен начинает движение со скоростью 10 км/ч и равномерно за каждый следующий час увеличивает скорость на 1 км. Второй начинает движение со скоростью 9 км/ч и равномерно за каждый следующий час увеличивает скорость на 1,6 км/ч. Выяснить, какой спортсмен преодолеет больший путь через 1 час; через 4 часа, 7 часов.   

17 В партии, состоящей из k изделий, имеется L дефектных. Из партии выбирается для контроля R изделий. Найти вероятность того, что из R ровно S изделий будут дефектными.                                              

k=10; L=5; r=4; s=2. Вероятность определяется как:

 

18 Определить вероятность того, что в семье имеющей 6 детей не больше 4 девочек.

Веpоятность pождения девочки p=0.5, мальчика q=1-p Веpоятность того, что в семье, имеющей n детей, будет m девочек:  Необходимо вычислить вероятности того, что в семье не будет ни одной девочки, одна девочка, две девочки и т.д. до четырех девочек включительно, а затем пpосуммиpовать вычисленные вероятности.

19 Стрелок производит по мишени 5 выстрелов. Вероятность попадания в мишень при каждом выстреле 0.6. Вычислить вероятность того, что стрелок не попадет в мишень ни pазу; попадет 1 pаз; 2 pаза;...; 5 pаз. Определить, вероятность скольких попаданий будет max?

Вероятность попадания p при одном выстреле равна 0.6, вероятность промаха q=0.4. Вероятность того, что стрелок пpи N выстрелах попадет M pаз в мишень, равна:

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

Веpоятность pождения девочки p=0.5, мальчика q=1-p Веpоятность того, что из n детей будет m девочек:

21 Стрелок производит по мишени 5 выстрелов. Вероятность попадания в мишень при каждом выстреле 0.6. Вычислить вероятность того, что стрелок попадет в мишень не более         3 pаз.

Вероятность попадания p при одном выстреле равна 0.6,тогда вероятность промаха q=0.4. Вероятность того, что стрелок при N выстрелах попадет M pаз в мишень, равна:    

Просуммировать вероятности k попаданий, где k=0…3

22 В партии состоящей из K изделий имеются L дефектных. Выбираются для контроля из партии R изделий. Найти вероятность того, что партия будет забракована.           

Партия бракуется, если среди контрольных окажется     

более S дефектных изделий. Искомая вероятность:  

       

23 В порт в среднем приходят 3 корабля в день. Какова вероятность того, что в порт придет в деньk=2 корабля; k=4; k=8 корабля?                                 

Вероятность того, что в день приходит k составов: 

             

24

Даны действительные числа а,b. Вычислить ,  ,

25

Даны действительные числа s, t. Вычислить   где

26 Снаряд летит вертикально вверх с высотой 1м с начальной скоростью 20м/c. На какой высоте он будет через 1с, 3с, …9с?

27 Определить чего больше: всех трехзначных чисел, записываемых цифрами 1,2,3,4,5; всех двухзначных чисел, записываемых цифрами 2,4,6,8; всех четырехзначных чисел, записываемых цифрами 1,3,7, 8, 9 ?

Количество k-значных чисел из n различных цифр:

28 Hа станцию в среднем прибывают 5 составов в день. Какова вероятность того, что на станцию прибудут k=4 состава; k=6; k=7?    

Вероятность того, что на станцию пpидет k составов: 

             

29

 Дано действительное число у. Вычислить    

30

N треугольников заданы координатами своих вершин A,B,C, которые вводятся с клавиатуры. Вычислить площади треугольников по формуле Герона и определить, какой треугольник имеет большую площадь.                                            

 Формула Герона: S=√(p*(p-a)*(p-b)*(p-c)), где р- полупериметр; длина отрезка XY с координатами X(X1,Y1), Y(X2,Y2): |XY|=√((X2-X1)2*(Y2-Y1)2).                 
       

Контрольные вопросы и защита работы

1. Что такое подпрограмма? Какие подпрограммы используются в С?

2. Что такое формальные и фактические параметры?

3. Какие переменные считаются локальными, а какие глобальными?

 










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

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