Открыть Электронные книги
Категории
Открыть Аудиокниги
Категории
Открыть Журналы
Категории
Открыть Документы
Категории
по лабораторной работе № 1
по дисциплине алгоритмизация и компьютерное программирование
Тема: Разработка программ с использованием базовых конструкций языка С+
+
Цель: научиться использовать средства ввода/вывода данных
управляющие конструкции (условные, циклические) языка С++;
научиться разрабатывать и вызывать пользовательские функции, в том
числе с использованием массивов и указателей.
Модуль 1 Изучение структуры программы и конструкций языка С++
Задание
1. Условие задачи:
2. UML-диаграмма классов.
3. Программный код.
#include<iostream>
#include<string>
using namespace std;
struct rectangle
{
float L;
float W;
string color;
};
int main(void)
{
setlocale(LC_ALL, "Russian"); // установить кирилический шрифт в консоли
rectangle a, b;
a.L = 3.2;
a.W = 1.4;
a.color = "green";
L1 = a.L + a.W;
L2 = b.L + b.W;
S = L1 + L2;
stv = st * S;
cout << stv;
Структура Пример
тест-кейса
№ тест-кейса. 1 Анализ простой дроби
Краткое Шаги:
описание 1 Запустить программу
Предусловие Ввести значение длины 5
(может Ввести значение ширины 7
отсутствова Ввести значение стоимости лент 5
ть) Ожидаемый результат
Описать, что На экран должно быть выведено:
должно быть Площадь большего прямоугольника. 35
выполнено до Стоимость обклейки лентой первого и второго
начала Прямоугольников. 120 и 110
выполнения
тест-кейса,
Фактический результат:
например,
заполнить
список
данными т. д.
Шаги
Перечислить
последовательн
ость действий,
какие
конкретно
данные ввести
в ответ на
запрос
программы.
Ожидаемый
результат
выполнения
программы
Фактический
результат
выполнения
программы
Привести
экранную
форму из
работающей
программы.
Если совпадает
с ожидаемым
результатом –
тест пройден.
Условие задачи:
switch (Students[i].mark) {
case 0: cout << "Ноль";
break;
case 1: cout << "Один";
break;
case 2: cout << "Два";
break;
case 3: cout << "Три ";
break;
case 4: cout << "Четыре";
break;
case 5: cout << "Пять";
break;
case 6: cout << "Шесть";
break;
case 7: cout << "Семь";
break;
case 8: cout << "Восемь";
break;
case 9: cout << "Девять";
break;
case 10: cout << "Десять";
break;
default:
cout << " Нет такой отметки! ";
}; cout << ")" << endl;
}
}
return 0;
}
Структура Пример
тест-кейса
№ тест- 1 Анализ сдачи теста студентами
кейса. Шаги:
Краткое Запустить программу
описание Ввести студентов и их оценки
Предуслови Ожидаемый результат
е (может На экран должно быть выведено:
отстуствов Фамилия, оценка, оценка словами
ать)
Описать, что
должно быть
выполнено до
начала
выполнения
тест-кейса,
например
заполнить
список
данными т. д.
Шаги
Перечислить
последовател
ьность
действий,
какие
конкретно
данные
ввести в
ответ на
запрос
программы.
Ожидаемый
результат
выполнения
программы
Фактически
й результат
выполнения
программы
Привести
экранную
форму из
работающей
программы.
Если
совпадает с
ожидаемым
результатом
– тест
пройден.
1. Условие задачи:
#include<cmath>
struct Point {
float x;
float y;
};
void input(Point*);
int main()
{
setlocale(LC_ALL, "Russian");
Point A1, B1;
cout << "введите координаты А1" << endl;
input(&A1);
cout << "введите координаты B1" << endl;
input(&B1);
cout << "длинна первого:" << getDistance(A1, B1) << endl;
input(&B2);
{
return sqrt((B.x - A.x) * (B.x - A.x) + (B.y - A.y) * (B.y - A.y));
}
4. Тестирование работы программы.
Структура тест-кейса Пример
№ тест-кейса. Краткое описание 1 Анализ простой дроби Шаги
Предусловие (может отсутство- 1 Запустить программу
вать) 1.Ввести координаты А1 5 6
Описать, что должно быть выполнено до 2.Ввести координаты Б1 7 8
начала выполнения тест-кейса, например, 3.Ввести координаты А2 8 9
заполнить список данными т. д.
4.Ввести координаты Б2 5 9
Шаги
Перечислить последовательность
действий, какие конкретно данные ввести Ожидаемый результат
в ответ на запрос программы. На экран должно быть выведено:
Ожидаемый результат выполнения Длинна первого 2.82
программы Длинна второго 3
Фактичсекий результат выполнения
программы Фактический результат:
Привести экранную форму из
работающей программы. Если совпадает
с ожидаемым результатом – тест
пройден.
Даны два трехзначных целых числа. С помощью функции пользователя
число, у которого первая цифра в записи большее заменить 1, а у которого
меньше - -1.
#include <iostream>
using namespace std;
a = *n / 100;
b = *n % 100 / 10;
c = *n % 10;
a2 = n2 / 100;
b2 = n2 % 100 / 10;
c2 = n2 % 10;
if (a < a2)
{
a = 1;
*n = (a * 10 + b) * 10 + c;
a2--;
*n = (a * 10 + b) * 10 + c;
a2 = 1;
int main()
{
setlocale(LC_ALL, "ru");
int n, n2;
cout << "Введите первое число " << endl;
cin >> n;
cout << "Введите второе число " << endl;
cin >> n2;
Foo1(&n, n2);
cout << "Первое число " << n << endl << "Второе число " << n2 << endl;
return 0;
}
Структура тест-кейса Пример
№ тест-кейса. Краткое описание 1 Анализ простой дроби
Предусловие (может Шаги:
отсутствовать) 1 Запустить программу
Описать, что должно быть выполнено до Ожидаемый результат
начала выполнения тест-кейса, например, число, у которого первая цифра в
заполнить список данными т. д. записи большее замениться 1, а у
Шаги
которого меньше - -1.
Перечислить последовательность
действий, какие конкретно данные ввести
в ответ на запрос программы. Фактический результат:
Ожидаемый результат выполнения
программы
Фактический результат выполнения
программы
Привести экранную форму из
работающей программы. Если совпадает
с ожидаемым результатом – тест
пройден.
Контрольные вопросы:
Объявление переменных
Перед использованием любая переменная должна быть объявлена, т.е.
получить имя, тип и (необязательно) начальное значение. Общий формат
инструкции объявления переменных выглядит следующим образом:
тип список_переменных, где
элемент тип - это тип данных;
элемент список_переменных - список имен переменных,
указанного типа.
Примеры объявления переменных:
int i, k, x;
double d, dBalance;
При объявлении, переменную можно инициализировать, т. е. присвоить ей
начальное значение, причем С++ позволяет выполнить динамическую
инициализацию с помощью любого выражения, действительного на момент
инициализации. Инициализатор можно записывать в двух формах:
со знаком равенства: int a = 10, b = 20;
в круглых скобках: int c (a+b);
Строка — последовательность (массив) символов. Если в
выражении встречается одиночный символ, он должен быть
заключен в одинарные кавычки. При использовании в выражениях
строка заключается в двойные кавычки. Признаком конца строки
является нулевой символ \0. В C++ строки можно описать с
помощью массива символов (массив элементов типа char), в
котором следует предусмотреть место для хранения признака
конца строки.
6) Т
7) int a; // объявление переменной a целого типа.
float b; // объявление переменной b типа данных с плавающей
запятой.
double c = 14.2; // инициализация переменной типа double.
char d = 's'; // инициализация переменной типа char.
bool k = true; // инициализация логической переменной k.
Заметьте, что в C++ оператор присваивания (=) — не является знаком
равенства и не может использоваться для сравнения значений. Оператор
равенства записывается как «двойное равно» — ==.
Присваивание используется для сохранения определенного значение в
переменной. Например, запись вида a = 10 задает переменной a значение
числа 10.
8) Описание объектов для управления вводом-выводом содержится в
файле iostream.h. При подключении этого файла с помощью
директивы #include <iostream.h> в программе автоматически
создаются виртуальные каналы связи cin для ввода с клавиатуры
и cout для вывода на экран, а также операции помещения в
поток << и чтения из потока >>.
С помощью объекта cin и операции >> можно присвоить значение
любой переменной. Например, если переменная x описана
как целочисленная, то команда cin>>x; означает, что в
переменную x будет записано некое целое число, введенное с
клавиатуры. Если необходимо ввести несколько переменных, то
следует написать cin>>x>>y>>z;.
Объект cout и операция << позволяет вывести на экран значение
любой переменной или текст. Текст необходимо заключать в двойные
кавычки. Запись cout<<x; означает вывод на экран значения
переменной x.
операнд_1 = операнд_2
#includei
nt main()
{
int a = 3, b = 5, с = 7;
a = b; b = a; с = с + 1;
cout << "a = " << a;
cout << "\t b = " << b;
cout << "\t с = " << c;
return 0;}
Результат работы программы: a = 5 b = 5 c = 8.
10) Операторы управляют процессом выполнения программы. Набор
операторов языка С++ содержит все управляющие конструкции структурного
программирования.
Составной оператор ограничивается фигурными скобками. Все другие
операторы заканчиваются точкой с запятой.
Пустой оператор – ;
Пустой оператор – это оператор, состоящий только из точки с запятой.
Он может появиться в любом месте программы, где по синтаксису
требуется оператор. Выполнение пустого оператора не меняет
состояния программы.
Оператор разрыва
break;
Оператор продолжения
continue;
Оператор продолжения передает управление на следующую итерацию
в операторах цикла while, do, for. Он может содержаться только в теле
этих операторов. В операторах do и while следующая итерация
начинается с вычисления условного выражения. В
операторе for следующая итерация начинается с вычисления
выражения приращения, а затем происходит вычисление условного
выражения.
Оператор возврата
return [<выражение>];
имя_функции(аргументы);
тип имя_функции(параметры);
14) Называйте функцию/переменную/структуру/класс так, чтобы было
понятно что он/она выполняет, какую роль играет и за что отвечает.
17) Указатель — это переменная. Такая же, как и любая другая. У нее есть
свое значение и свой адрес в памяти.
// без параметров:
тип main()
{ /* ... */}
// с двумя параметрами:
тип main(int argc, char* argv[])
{ /* ... */}