История развития хранилищ для нефти: Первые склады нефти появились в XVII веке. Они представляли собой землянные ямы-амбара глубиной 4…5 м...
Состав сооружений: решетки и песколовки: Решетки – это первое устройство в схеме очистных сооружений. Они представляют...
Топ:
Генеалогическое древо Султанов Османской империи: Османские правители, вначале, будучи еще бейлербеями Анатолии, женились на дочерях византийских императоров...
Процедура выполнения команд. Рабочий цикл процессора: Функционирование процессора в основном состоит из повторяющихся рабочих циклов, каждый из которых соответствует...
Когда производится ограждение поезда, остановившегося на перегоне: Во всех случаях немедленно должно быть ограждено место препятствия для движения поездов на смежном пути двухпутного...
Интересное:
Инженерная защита территорий, зданий и сооружений от опасных геологических процессов: Изучение оползневых явлений, оценка устойчивости склонов и проектирование противооползневых сооружений — актуальнейшие задачи, стоящие перед отечественными...
Средства для ингаляционного наркоза: Наркоз наступает в результате вдыхания (ингаляции) средств, которое осуществляют или с помощью маски...
Искусственное повышение поверхности территории: Варианты искусственного повышения поверхности территории необходимо выбирать на основе анализа следующих характеристик защищаемой территории...
Дисциплины:
2017-06-13 | 494 |
5.00
из
|
Заказать работу |
|
|
Переменные, объявленные внутри тела функции, называются локальными и существуют только внутри самой функции. Когда выполнение программы возвращается к выполнению основного кода, локальные переменные удаляются из памяти. Переменные, объявленные в качестве параметров функции, также называются локальными. Каждая переменная характеризуется своей областью видимости, определяющей время жизни и доступность этой переменной в программе.
Переменные, объявленные внутри некоторого блока программы, имеют область видимости, ограниченную этим блоком. Блок в программе выделяется фигурными скобками. К этим переменным можно получить доступ только внутри этого блока. После завершения блока объявленные в нем переменные удаляются.
Переменные, объявленные вне тела какой либо функции (в том числе главной функции), называются глобальными.
Глобальные переменные используются в тех случаях, если требуется сделать данные доступными для многих функций, а передавать эти данные в качестве параметров функции затруднительно. Глобальные переменные следует использовать очень осторожно, так как в результате общедоступности они могут быть изменены любой функцией и это изменение может оказаться не замеченным пользователем.
Если имя локальной переменной совпадает с именем глобальной переменной, то локальная переменная во время выполнения того блока, где она объявлена, перекрывает глобальную переменную.
Примеры использования локальных и глобальных переменных
Пример 1. Использование локальных переменных и параметров функции
# include < iostream >
using namespace std;
float Convert (float);
int main ()
{
float TempFer;
float TempCel;
cout << "Please enter the temperature in Fahrenheit: ";
|
cin >> TempFer;
TempCel = Convert (TempFer);
cout << "\n Here's the temperature in Celsius: ";
cout << TempCel << endl;
return 0;
}
float Convert (float TempFer)
{
float TempCel;
TempCel = ((TempFer – 32) * 5) / 9;
return TempCel;
}
Результат программы на экране будет иметь вид:
Please enter the temperature in Fahrenheit: 212
Here's the temperature in Celsius: 100
Пример 2. Использование глобальных и локальных переменных
# include < iostream>
void myFunction(); // прототип функции
int x = 5, y = 7; // глобальные переменные
int main ()
{
cout << " x from main: " << x << " \n ";
cout << " y from main: " << y << " \n \n ";
myFunction ();
cout << " Back from myFunction! \n \n ";
cout << " x from main: " << x << " \n ";
cout << " y from main: " << y << " \n ";
return 0;
}
void myFunction ()
{
int y = 10;
cout << "x from myFunction: " << x << " \n ";
cout << "y from myFunction: " << y << " \n \n ";
}
Результат программы на экране будет иметь вид:
x from main: 5
y from main: 7
x from myFunction: 5
y from myFunction: 10
Back from myFunction!
x from main: 5
y from main: 7
Пример 3. Использование переменных, объявленных внутри блока
# include < iostream >
using namespace std;
void myFunc ();
int main ()
{
int x = 5;
cout << "\n In main x is: " << x;
myFunc ();
cout << " \n Back in main, x is: " << x;
return 0;
}
void myFunc()
{
int x = 8;
cout << "\n In myFunc, local x: " << x << endl;
{
cout << "\n In block in myFunc, x is: " << x;
int x = 9;
cout << "\n Very local x: " << x;
}
cout << "\n Out of block, in myFunc, x: " << x << endl;
}
Результат программы на экране будет иметь вид:
In main x is: 5
In myFunc, local x: 8
In block in myFunc, x is: 8
Very local x: 9
Out of block, in myFunc, x: 8
Back in main, x is: 5
Проанализируйте в приведенных примерах изменения значений переменных x и y до входа в функцию, во время выполнения функции, после выхода из неё и значений переменных, ограниченных блоком.
Задания к самостоятельной работе
1. Напишите функцию integerPower(base,exponent), которая возвращает значение baseexponent . Например, integerPower(3,4)=3*3*3*3. Предположим, что exponent является положительным ненулевым целым, а base целым. Для управления вычислением функция integerPower(base,exponent) должна применять цикл for. Не используйте никаких функций математической библиотеки.
|
2. Напишите функцию multiple для двух целых, которая определяет, кратно ли второе число первому. Функция должна получать два целых аргумента и возвращать 1, если второе число кратно первому и 0 в противном случае. Используйте эту функцию в программе, которая вводит серию пар целых чисел.
3. Напишите функцию, которая выводит у левой границы экрана сплошной квадрат из символов заданного символа (например, *), сторона которого определяется целым параметром side. Например, если side равно 4, функция выведет следующее изображение
* * * *
* * * *
* * * *
* * * *
4. Даны действительные числа s и t.
Используйте функции и вычислите
, где
5. Даны действительные числа a,b,c. Использовать функции и получить
6. Напишите программу, которая вводит последовательность целых чисел и передает их по одному функции even, использующей операцию вычисления остатка для определения четности числа. Функция должна принимать целый аргумент и возвращать 1, если аргумент — четное число, и 0 — в противном случае.
7. Говорят, что целое число является совершенным,если его сомножители, включая 1 (но не само число) в сумме дают это число. Например, 6 — это совершенное число, так как 6=1 + 2 + 3. Напишите функцию perfect, которая определяет, является ли параметр number совершенным числом. Используйте эту функцию в программе, которая определяет и печатает все совершенные числа в диапазоне от 1 до 1000. Напечатайте сомножители каждого совершенного числа, чтобы убедиться, что число действительно совершенное.
8. Говорят, что целое число является простым числом,если оно, делится только на 1 и на само себя. Например, 2, 3, 5 — простые числа, а 4, 6, 8 — нет.
a) Напишите функцию, определяющую, является ли число простым или нет.
b) Используйте эту функцию в программе, которая определяет и печатает все простые числа, лежащие в диапазоне от 1 до 10000.
c) Вначале вы могли бы подумать, что верхней границей, до которой вы должны проводить проверку, чтобы увидеть, является ли число n простым, является n/2, но в действительности вам нужно проверить количество чисел, равное корню квадратному из п. Почему? Перепишите программу и запустите ее для обоих способов. Оцените
улучшение производительности.
9. Напишите программу, моделирующую бросание монеты. Для каждого броска монеты программа должна печатать Орел или Решка. Промоделируйте с помощью этой программы бросание 100 раз и подсчитайте, сколько раз появилась каждая сторона монеты. Напечатайте результаты. Программа должна вызывать отдельную функцию flip, которая не принимает никаких аргументов и возвращает 0 для Орла и 1 для Решки.
|
Замечание: если программа действительно моделирует бросание монеты, каждая сторона монеты должна появляться примерно в половине случаев.
Лабораторная работа 2
Указатели
Указатели представляют собой переменные, значениями которых являются адреса памяти. Обычная переменная содержит конкретное значение, т.е. переменная ссылается непосредственно на это значение, а указатель содержит адрес, по которому находится конкретное значение переменной.
Синтаксис объявления указателя:
int *a; // объявленный указатель ссылается на объект целого типа.
После объявления указатель должен быть инициализирован. Указатель инициализируется адресом.
int * a; int b = 5; // в данном случае * показывает объявление указателя, во всех
// остальных случаях * указывает на операцию косвенной адресации.
a = & b; //инициализация указателя адресом переменной b.
b * a Имена переменных
1000 1004 адреса ячеек памяти
Для работы с указателями используются две операции:
* - операция косвенной адресации или операция разыменования,
& - операция взятия адреса (возвращает адрес своего операнда).
# include < iostream.h >
main () {
int * a;
int b = 5;
a = & b; // Выполняется операция взятия адреса.
сout << a << endl; // Выведется адрес ячейки памяти, в которой хранится // переменная “b”.
cout << * a << endl; // Выведется значение переменной b, на которую ссылается
// указатель.
return 0;
}
При объявлении указатель можно инициализировать адресом ячейки памяти.
…
int b;
int * a = & b; // * a = & b – нельзя!
…
|
|
Адаптации растений и животных к жизни в горах: Большое значение для жизни организмов в горах имеют степень расчленения, крутизна и экспозиционные различия склонов...
История развития хранилищ для нефти: Первые склады нефти появились в XVII веке. Они представляли собой землянные ямы-амбара глубиной 4…5 м...
Археология об основании Рима: Новые раскопки проясняют и такой острый дискуссионный вопрос, как дата самого возникновения Рима...
Автоматическое растормаживание колес: Тормозные устройства колес предназначены для уменьшения длины пробега и улучшения маневрирования ВС при...
© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!