Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
labs (oop).doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
98.3 Кб
Скачать

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

Тема: Функции. Команды препроцессора.

Цель: Применение функций и команд препроцессора для решения типовых задач по программированию.

Задание №1: Ответить на теоретический вопрос согласно варианту.

  1. Автоматические переменные.

Автоматические переменные

Все переменные, которые вы объявляли до сих пор, объявлялись внутри блока — то есть, внутри пары фигурных скобок. Такие переменные называются автоматическими, и о них говорят, что у них локальная область видимости, или область видимости блока. Автоматическая переменная "видима", начиная с точки, в которой она объявлена, и до конца блока, содержащего ее объявление. Пространство, которое занимает автоматическая переменная, выделяется автоматически в области памяти, называемой стеком, которая специально предназначена для этой цели. По умолчанию размер стека составляет 1 Мбайт, чего достаточно для большинства случаев, хотя если его не хватает, вы можете увеличить размер стека, установив опцию проекта /STACK в необходимое значение по своему выбору.

Задание №2: Составить программу согласно варианту.

Даны первый член и разность арифметической прогрессии. Написать рекурсивную функцию для нахождения:

а) n-го члена прогрессии;

б) суммы п первых членов прогрессии.

#include "stdafx.h"

#include <iostream>

#include <math.h>

#include <iomanip>

using namespace std;

float ArifProg(float n, float arg, float ras)

{

if (n == 0) return arg;

return ArifProg(--n, arg+ras, ras);

}

float pr(float n, float arg, float ras)

{

if (n == 1) return arg;

return arg + (n - 1)*ras + pr(n - 1, arg, ras);

}

int _tmain(int argc, _TCHAR* argv[])

{

float n, arg, ras;

setlocale(LC_ALL, "rus");

cout<<"Первый член a1=";

cin>>arg;

cout << "Разность d=";

cin >> ras;

cout << "n=";

cin >> n;

cout << "Сума элементов: " << pr(n, arg, ras) << endl;

cout << "N-ый элемент: " << ArifProg(n, arg, ras) << endl;

cout << "Програму виконав студент групи П-410 - Стасюк Iгор\n";

system("pause");

return 0;

}

Висновок: на лабораторній роботі я застосував функції і команди препроцесора для рішення типових задач по програмуванн.

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

Тема: Функции printf(), scanf(). Символьная обработка.

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

Задание №1: Ответить на теоретический вопрос согласно варианту.

  1. Описание функции getch().

Описание:

Функция getch читает без эхо-отображения отдельный символ

прямо с консоли. Напечатанные (введенные) символы не имеют

эхо-отображения. Если введен CONTROLL-C, система выполняет INT

23H.

Возвращаемое значение:

Функция getch возвращает прочитанный символ. Возвращаемого

значения в случае ошибки нет.

Задание №2: Составить программу согласно варианту.

15

Подсчитать количество слов

#include "stdafx.h"

#include <iostream>

#include <sstream>

#include <string>

size_t GetNumberOfWords(const char* text)

{

size_t count = 0;

while (*text)

{

//перематываем все пробельные символы

while (*text && isspace(*text)) ++text;

//если перемоталась вся строка - закончить работу

if (!(*text)) break;

//если мы здесь, значит мы наткнулись на "слово"

//увеличиваем счетчик слов, и перематываем его

++count;

while (*text && !isspace(*text)) ++text;

}

return count;

}

using namespace std;

int _tmain(int argc, _TCHAR* argv[])

{

setlocale(LC_CTYPE, "rus");

enum { eSIZE = 100 };

const char test1[eSIZE]= " Hello word hello word";

const char test2[eSIZE] = "Hello word hello word";

const char test3[eSIZE] = "Hello word hello word";

const char test4[eSIZE] = "Hello word hello word ";

cout << '\n';

cout << "WELCOME TO TEST OF FUNCTION size_t GetNumberOfWords(const char* text); \n";

cout << "source text :" << test1 << endl;

cout << "number of words in the text = " << GetNumberOfWords(test1) << endl << endl;

cout << "source text :" << test2 << endl;

cout << "number of words in the text = " << GetNumberOfWords(test2) << endl << endl;

cout << "source text :" << test3 << endl;

cout << "number of words in the text = " << GetNumberOfWords(test3) << endl << endl;

cout << "source text :" << test4 << endl;

cout << "number of words in the text = " << GetNumberOfWords(test4) << endl << endl;

cout << "THE CORRECT RESULT SHOULD BE: 4 WORDS\n";

cout << "Програму виконав студент групи П-410 - Стасюк Iгор\n";

system("pause");

return 0;

}

Висновок: на лабораторній роботі я навчився застосувати методи по символьної обробки.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]