Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
профорг поясняет.doc
Скачиваний:
4
Добавлен:
14.08.2019
Размер:
752.13 Кб
Скачать
    1. Результат работы программы

Рис. 8 Результат работы программы 7.1 для десятичных дробей

Рис. 9 Результат работы программы 7.1 для обычных дробей

  1. Лабораторная работа №7.2 «Функции с переменным числом параметров»

    1. Постановка задачи

Написать функцию kvadr с переменным числом параметров, которая определяет количество чисел, являющихся точными квадратами (2, 4, 9, 16,. . . ) типа int. Написать вызывающую функцию main, которая обращается к функции kvadr не менее трех раз с количеством параметров 3, 7, 11.

    1. Программа решения задачи

//---------------------------------------------------------------------------

#include <vcl.h>

#pragma hdrstop

#include <iostream.h>

#include <conio.h>

#include <math.h>

//---------------------------------------------------------------------------

/*

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

являющихся точными квадратами (2, 4, 9, 16,. . . ) типа int. Написать вы-зывающую функцию main,

которая обращается к функции kvadr не менее трех раз с количеством параметров 3, 7, 11. */

#pragma argsused

char* Rus(const char* text);

int kvadr(int m,...) //функция, считающая количество точных квадратов

{

int *p=&m+1; //настраиваем указатель на параметр m

int k=0; //счетчик количества квадратов

int kor; //переменная для хранения корня

for ( ; m!=0; m-- )

{

kor=sqrt(*p); //извлекаем корень из числа, записываем его без дробной части

if(kor*kor==*p) k++; //возводим корень в квадрат, проверяем

p++; //переходим к следующему элементу

}

return k;

}

int main(int argc, char* argv[])

{

int n1,n2,n3,n4,n5,n6,n7,n8,n9,n10,n11;

int ch;

cout << Rus("Сколько чисел вы хотите проверить(3,7 или 11)? ");

cin >> ch; //переменная для хранения кода выбора

if (ch==3)

{

cout << Rus("Введите 3 числа: ");

cin >> n1 >> n2 >> n3;

cout << Rus("Количество точных квадратов: ") << kvadr(3,n1,n2,n3);

}

if (ch==7)

{

cout << Rus("Введите 7 чисел: ");

cin >> n1 >> n2 >> n3 >> n4 >> n5 >> n6 >> n7;

cout << Rus("Количество точных квадратов: ") << kvadr(7,n1,n2,n3,n4,n5,n6,n7);

}

if (ch==11)

{

cout << Rus("Введите 11 чисел: ");

cin >> n1 >> n2 >> n3 >> n4 >> n5 >> n6 >> n7 >> n10 >> n11;

cout << Rus("Количество точных квадратов: ") << kvadr(11,n1,n2,n3,n4,n5,n6,n7,n8,n9,n10,n11);

}

getch();

return 0;

}

char bufRus[256];

char* Rus(const char* text){

CharToOem(text, bufRus);

return bufRus;

}

    1. Результат работы программы

Рис. 10. Результат работы программы 7(2)

  1. Лабораторная работа №8 «Блоковый ввод-вывод»