Лабораторная работа №4
Тема: Функции. Команды препроцессора.
Цель: Применение функций и команд препроцессора для решения типовых задач по программированию.
Задание №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: Ответить на теоретический вопрос согласно варианту.
Описание функции 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;
}
Висновок: на лабораторній роботі я навчився застосувати методи по символьної обробки.
