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

Явное и неявное преобразование типов в языке С++

Определение, описание и вызов функций в языке С++.

 

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

 

Домашнее задание

2.1 Сформулировать и записать правила преобразования типов при выполнении арифметических операций и операции присваивания. Привести примеры.

2.2 Сформулировать и записать правило передачи данных в функцию по значению через аппарат фактических и формальных параметров. Привести пример.

 

Лабораторное задание.

3.1 Набрать программы №1 и №2.

// Программа №1 Преобразование типов.

#include "stdafx.h"

#include <iostream>

#include <math.h>

using namespace std;

 

void main (){

long k = 123456789;

float g = (float)k;

cout<<"\n\n k = "<<k;

cout<<"\n g= "<<g;

k = (long)g;  

cout<<"\n k = "<<k;          //Объяснить результат

g = (float) 2.222222e+2;

int m = int(g);

cout<<"\n\n g = " <<g;

cout<<"\n m = "<<m;

g = (float)m;

cout<<"\n g = "<<g;

int a=1, b = 2;

double c = 1;

c = a/b*c+ a*c/b;

cout<<"\n c = "<<c;                //Объяснить результат

cout<<"\n 1/2*exp(1) = "<<1/2*exp(1.); //Объяснить результат

getchar();

}

 

// Программа №2 Функции, определенные пользователем

#include "stdafx.h"

#include <iostream>

using namespace std;

 

extern double k;                              //Описание переменной k

void main (){

double a = 2, b = 3;//Описание, определение и инициализация переменных a и b.

k = 1.3*k/((a+b)*(a-b));

cout<< "\n k = "<<k;

getchar();

}

double k=1; //Определение переменной k

3.2 Отладить программы №1 и №2.

3.3 Модифицировать программу №2 определив функции, реализующие арифметические операции сложения (+), вычитания (-), умножения (*), деления (/). Имена функциям придумать самостоятельно. Вставить в строку программы k = 1.3*k/((a+b)*(a-b)); вместо операции и её операндов соответствующий вызов функции.       

//Пример определения и вызова функции, реализующей операцию сложения +:

#include "stdafx.h"

#include <iostream>

using namespace std;

 

double sum(double a, double b);         //Описание функции sum()

extern double k;

void main (){

k = 1;

double a = 2, b = 3;

k = 1.3*k/(sum(a,b)*(a-b)); //Строка программы содержит вызов функции sum()

cout<< "\n k = "<<k;

getchar();

}

double sum(double a, double b){          //Определение функции sum()

return a+b;

}                                               

double k;

3.4 Проанализировать результаты работы программ.

3.5 Написать программу №3, вычисляющую значение функции при t = 0, 0.1 и 0.4.

3.6 Ответить на контрольные вопросы.

3.7 Написать отчет.

 

Содержание отчета

4.1 Титульный лист. Домашнее задание.

4.2 Текст и результаты работы программы №1.

4.3 Текст модифицированной программы №2, с функциями, реализующими операции -, *, /.

4.4 Текст программы №3.

 

Контрольные вопросы

5.1 Что такое описание, определение и вызов функции (пояснить на примере функций определенных вами в лабораторном задании)? Для чего необходимо описание функции, можно ли его опустить?

5.2 Что такое формальные и фактические параметры? Поясните способ передачи данных в функцию через параметры и через глобальную переменную?

5.3 Поясните, с помощью какого оператора функция возвращает значение в точку вызова. Какой тип этого значения?

5.4 Что такое описание и определение переменной? Приведите примеры описания и определения переменных? В чем их принципиальная разница?

5.5 Что такое инициализация переменной? Чем инициализация переменной отличается от присваивания переменной значения.

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

5.7 Какие переменные называются локальными, глобальными, статическими? Приведите примеры. Может ли локальная переменная быть статической?

5.8 Приведите примеры явного и неявного преобразования типов при выполнении арифметических операций и операции присваивания. Объясните результаты работы программы №1.

5.9 Как использовать библиотечные функции? Что такое заголовочный файл, и что он содержит. Где содержится определение и описание библиотечных функций, использованных в лабораторной работе?

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

 

 


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: