Главная » Просмотр файлов » Лабораторные работы МИРЭА 2014

Лабораторные работы МИРЭА 2014 (1017113), страница 4

Файл №1017113 Лабораторные работы МИРЭА 2014 (Лабораторные работы МИРЭА 2014) 4 страницаЛабораторные работы МИРЭА 2014 (1017113) страница 42017-07-08СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 4)

Передача параметров по значению

В момент обращения к функции в памяти создаются временные переменные с именами, указанными в списке параметров. В временные переменные копируются значения фактических параметров.

Передача параметров по ссылке

При передаче параметров по ссылке передается не значение соответствующей переменной, а ее адрес. Для указания на данный способ передачи после имени параметра ставится символ «& ».

Передача параметров по указателю

В отличие от передачи по ссылке адрес переменной передается в функцию не с использованием операции разадресации (&), а операцией косвенной адресации (*). Иначе говоря, передается указатель.

Перегрузка функций и указатель на функцию

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

Так как имя функции является указателем на начало функции в оперативной памяти, то можно объявлять указатели на функции для последующего их

использования в программе.

При объявлении указатель должен возвращать тот же тип и иметь такие же аргументы, как и функция, на которую он будет указывать. Например, указатель на функцию

double y(double x, int n);

будет иметь вид:

double (*fun)(double, int);

Пример выполнения работы

Задача. Создать функцию sign для определения знака числа

#include<iostream>

#include<windows>

using namespace std;

int sign(double x){

if(x>0) return 1;

if(x<0) return -1;

if(x==0) return 0;

}

main(){

double x;

char rule='y';

system("chcp 1251");

do{

cout<<endl<<"x=";

cin>>x;

if(sign(x)==1) cout<<"x>0";

if(sign(x)==-1) cout<<"x<0";

if(sign(x)==0) cout<<"x=0";

cout<<endl<< "Еще раз?";

cin>>rule;

}while(rule=='Y'||rule=='y');

}

Задания для самостоятельной работы

Вариант 1

  1. Дано натуральное число п. Выведите на экран число, которое получится после записи цифр числа п в обратном порядке. Для получения нового числа составьте функцию.

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

Вариант 2

  1. Напишите программу, которая вычисляет количество сочетаний по формуле:

Вычисление факториала оформить в виде функции.

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

Вариант 3

  1. Напишите программу перевода двоичных цифр в эквивалентное целое десятичное число. Сам перевод числа оформите в виде функции.

  2. Напишите программу, в которой использовалась бы функция Dohod, вычисляющая доход по вкладу. Исходными данными для функции являются: величина вклада, процентная ставка (годовых) и срок вклада (количество дней).

Вариант 4

  1. Напишите программу перевода шестнадцатеричных цифр в эквивалентное целое десятичное число. Перевод числа оформите в виде функции.

  2. Напишите программу, в которой будет использоваться функция Sogl. Эта функция должна возвращать 1, если символ, полученный функцией в качестве аргумента, является согласной буквой английского алфавита, и 0 в противном случае.

Вариант 5

  1. Напишите программу для подсчета количества цифр в числе (не обязательно целом). Подсчет цифр оформите в виде функции.

  2. Напишите программу, в которой использовалась бы функция преобразования Preobr букв английского алфавита: из прописной буквы — в строчную и наоборот.

Вариант 6

  1. Напишите программу для нахождения наибольшего числа из двух чисел. Программу оформите в виде функции

  2. Напишите программу, в которой использовалась бы функция Output, выводящая на экран строку, состоящую из одинаковых символов. Длина строки и символ являются параметрами функции.

Вариант 7

1. Напишите программу для решения выражения:

Вычисление факториала оформите в виде функции.

  1. Напишите программу, в которой производилось бы вычисление объема и площади поверхности параллелепипеда с помощью соответствующих функций Volume и Square.

Вариант 8

1. Напишите программу, которая по заданному натуральному числу определяет количество цифр в нем и их сумму. Определение количества цифр в числе и их сумму оформите в виде функции.

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

Вариант 9

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

2. Напишите программу, в которой использовалась бы функция Chislo, обеспечивающая ввод с клавиатуры символа без его отображения на экране. При нажатии клавиши Enter соответствующий символ должен появляться на экране только в том случае, если этот символ — цифра от 1 до 9.

Вариант 10

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

2. Напишите программу с использованием функции Perim. В эту функцию из программы передаются координаты вершин треугольника А(х1, у1), В(х2, у2), С(х3, у3), а она возвращает периметр треугольника. Если такой треугольник не существует, то выдается соответствующее сообщение.

Вариант 11

1. Даны натуральные числа n и m. Напишите программу, вычисляющую результат операции сложения двух чисел, образованных k младшими цифрами числа n, и k старшими цифрами числа m.

2. Напишите программу с использованием функции Vistrel, которая, получая из программы координаты точки (х, у), определяла бы, попадает ли точка в заданную на следующем рисунке область.

Результат должен выводиться в виде текстового сообщения.

Вариант 12

  1. Напишите программу для вычисления значения

для n от 12 до 24 с шагом 4. Вычисление факториала оформите в виде функции.

  1. Напишите программу, которая выводила бы на экран в виде таблицы значения функции F на интервале от Хнач до Хкон с шагом dX и где использовалась бы функция Vichisl, которая вычисляла бы выражение:

Значения х, а, b, с передаются из программы в функцию.

Вариант 13

1. Даны натуральные числа n, m и k. Напишите программу, вычисляющую результат сложения двух чисел, образованных к младшими цифрами числа n, и k младшими цифрами числа m.

2. Напишите программу, в которой использовалась бы функция Glasn. Эта функция должна возвращать 1, если символ, полученный функцией в качестве аргумента, является гласной буквой английского алфавита, и 0 в противном случае.

Вариант 14

1. Напишите программу, вычисляющую количество простых чисел в заданном интервале. Программу оформите в виде функции.

2. Напишите программу, в которой использовалась бы функция Number. Эта функция должна определить сколько раз целое число m делится на целое n без остатка.

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

МАССИВЫ И УКАЗАТЕЛИ

Цель работы: приобретение навыков работы с массивами

Длительность выполнения работы: 2 часа.

Объявление указателя

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

тип *имя указателя

Например:

int *a; double *b, *d; char *c;

Знак «звездочка» относится к имени указателя. Значение указателя соответствует первому байту участка памяти, на который он ссылается. На один и тот же участок памяти может ссылаться любое число указателей.

В языке С++ существует три вида указателей:

1. Указатель на объект известного типа. Содержит адрес объекта определенного типа.

2. Указатель типа void. Применяется, если тип объекта заранее не определен.

3. Указатель на функцию.

Операции с указателями

С указателями можно провести две унитарные операции:

  1. & (взять адрес). Указатель получает адрес переменной. Данная операция применима к переменным, под которые выделен соответствующий участок памяти. Например,

int x=1, *pint;

pint=&x; //теперь в pint записан адрес переменной x

  1. * (операция разъименовывания). Предназначена для доступа к величине, расположенной по данному адресу.

Например,

int x=1, *pint;

pint=&x; //теперь в pint записан адрес переменной x

/*содержимому по данному адресу присвоим новое значение равное 2 */

*pint=2;

cout<< "x= " <<x;

Над указателями можно выполнять арифметические операции сложения, инкремента, вычитания, декремента и операции сравнения. При выполнении арифметических операций с указателями автоматически учитывается размер данных (т.е. объем памяти), на которые он указывает.

Указатели, как правило, используются при работе с динамической памятью (heap, или «куча»).

В языке C++ для выделения и освобождения памяти определены операции new и delete соответственно. Используют две формы операций:

1. Тип *указатель = new тип (значение) – выделение участка памяти в соответствии с указанным типом и занесение туда указанного значения. delete указатель – освобождение выделенной памяти.

2. Тип *указатель = new тип[n] – выделение участка памяти размером n блоков указанного типа. delete [ ] указатель – освобождение выделенной памяти.

Создание динамического массива

Имя любого массива рассматривается компилятором как указатель на нулевой элемент массива.

#include <iostream>

# include<windows.h>

using namespace std;

int main(){

int n;

SetConsoleOutputCP(1251);

cout<< "Размер массива= ";

cin>>n;

Характеристики

Тип файла
Документ
Размер
3,06 Mb
Тип материала
Высшее учебное заведение

Список файлов лабораторной работы

Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6384
Авторов
на СтудИзбе
308
Средний доход
с одного платного файла
Обучение Подробнее