- •Часть 1 11
- •Часть 2 18
- •Часть 1 21
- •Часть 2 24
- •Лабораторная работа №1 Тема: “Программы, использующие команды ветвления. Отладка программы“ Отладка программы
- •Часть 1 Ветвление в программе с помощью вложенных конструкцийif-else Задание
- •Пример 1
- •Пример 2
- •Организация повторения программы
- •Выполнение программы в пошаговом режиме
- •Задание для самостоятельного выполнения
- •Часть 2 Ветвление в программе с помощью оператораswitch
- •Задание для самостоятельного выполнения
- •Лабораторная работа №2
- •Программа, которая проверяет, является ли число простым
- •Программа, которая проверяет, является ли число палиндромом
- •Часть 2 Программы, использующие рекуррентные соотношения
- •Программа, которая находит числа Фибоначчи в заданном диапазоне.
- •Программа, которая находит значение квадратного корня из заданного числа, используя рекуррентное соотношение:
- •Программа, которая вычисляет сумму рядас заданной точностью.
- •Пример – программа, которая вычисляет сумму рядадля заданного количества слагаемых.
- •Задания для самостоятельного выполнения
- •Лабораторная работа № 3 Тема: “Программы, использующие вспомогательные функции”.
- •1. Программа, которая считывает координаты вершин треугольника на плоскости и находит все углы этого треугольника в градусах.
- •2. Программа, которая находит заданное количество чисел, содержащих цифру 3
- •3. Программа, которая находит на заданном отрезке натуральные числа, которые можно представить в виде суммы квадратов двух натуральных чисел.
- •Программа, которая находит первое автоморфное число справа от заданного.
- •6. Программа для вычисления биноминальных коэффициентов
- •Задания для самостоятельного выполнения
- •Лабораторная работа № 4 Тема: “Программы, использующие строки символов ”.
- •Программа, которая считывает строку символов и сортирует ее по возрастанию кодов символов
- •Программа перевода числа из десятичной системы счисления в двоичную
- •Первый вариант (с использованием указателя)
- •Программа перевода числа из двоичной системы в десятичную
- •Программа перевода числа из 16-ой системы счисления в 2-ую.
- •Программа перевода числа из 2-ой системы счисления в 16-ую.
- •Программа, которая выводит на экран треугольник Паскаля (треугольник биноминальных коэффициентов)
- •Задания для самостоятельного выполнения
- •Лабораторная работа № 5 Тема: “Программы, использующие файлы ”.
- •Программа, которая считывает имя файла, открывает его и подсчитывает количество скобок каждого вида, содержащихся в файле.
- •Программа, инвертирующая файл (переставляющаясимволыв обратном порядке)
- •Программа выводит на экран n-ую строку файла
- •Программа, которая переписывает текст из одного файла в другой, удаляя лишние пробелы между словами и делая ширину текста максимум 70 символов
- •5. Программа, которая считывает текст файла и создает новый файл, заменив во всем тексте заданное слово на новое (не изменяя деление на строки и количество пробелов между словами)
- •6. Программа, которая считывает данные для структуры Man из файла.
- •Задания для самостоятельного выполнения
- •Лабораторная работа № 6 Тема: “Программы, использующие массивы ”.
- •Программа заполняет массив a(50) случайными целыми числами из диапазона [-20, 30] и упорядочивает его по возрастанию. Исходный и упорядоченный массивы выводятся на экран дисплея.
- •Программа, которая по заданным корням многочлена степениnвосстанавливает все коэффициенты многочлена.
- •Программа считывает линейный массив из файла, выводит его на экран, и подсчитывает количество элементов массива, находит min и max элементы и их индексы.
- •Программа заполняет массив a[5][5] случайными целыми числами из диапазона [-3, 3] и находит произведение элементов, стоящих на побочной диагонали.
- •Программа считывает матрицу из файла, выводит ee на экран, сортирует элементы в каждом столбце и отсортированную матрицу записывает в файл.
- •Программа, сортирующая файл по длине строки методом быстрой сортировки.
- •Задания для самостоятельного выполнения
- •Лабораторная работа № 7 Тема: “Программы, использующие динамические структуры”.
- •Программа, которая создает очередь символов.
- •Программа, которая создает закольцованный список и затем последовательно удаляет из списка каждыйm-й элемент до тех пор, пока не будут удалены все.
- •Программа, которая работает со стеком.
- •Программа, которая работает с деревом.
- •Задания для самостоятельного выполнения
Программа, которая считывает строку символов и сортирует ее по возрастанию кодов символов
Программа иллюстрирует процесс формирования строки, удовлетворяющей условию.
#include<iostream>
#include<iomanip>
#include<math.h>
#include<conio.h>
#include<String.h>
#include <windows.h>
using namespace std;
int main()
{
if(SetConsoleCP(1251)==0)
{
cerr<<"Fialed to set codepage!"<<endl
}
if(SetConsoleOutputCP(1251)==0)
{
cerr<<"Failed to set OUTPUT page!"<<endl;
}
char str1[81], str2[81];
int n=0;
cout << "Задайте строку символов\n";
cin.getline(str1, 80);
for (int i= 32; i<255; i++)
for (int j = 0; j < strlen(str1); j++)
if ( str1[j]+128 == i )
str2[n++] = i-128;
str2[n] = '\0';
cout << "Отсортированная строка:\n";
cout << str2 << endl;
_getch();
return 0;
}
Программа перевода числа из десятичной системы счисления в двоичную
Для перевода числа в двоичную систему необходимо получить цифры двоичного числа, для этого используем тот же алгоритм, что и для получения десятичных цифр: будем брать остатки от деления на 2. Для получения числа нужно записать цифры в обратном порядке. Двоичное число будем хранить в виде строки символов.
Первый вариант (с использованием указателя)
#include <iostream>
#include <iomanip>
#include <math.h>
#include <conio.h>
#include <String.h>
#include <windows.h>
using namespace std;
int main()
{
if(SetConsoleCP(1251)==0
{
cerr<<"Fialed to set codepage!"<<endl;//если не удалось установить кодовую страницу, вывод сообщения об ошибке
}
if(SetConsoleOutputCP(1251)==0)//тоже самое для вывода
{
cerr<<"Failed to set OUTPUT page!"<<endl;
}
long dec; // десятичное число, которое мы будем переводить
byte ost; // остаток от деления на 2 (двоичная цифра)
char tmp[81]; // строка, которая будет хранить двоичное (binary) число
cout << "Введите неотрицательное целое десятичное число ";
cin >> dec;
char *bin;
//Указатель, который мы будем использовать для получения символа
bin = &(tmp[80] = 0);
/* Присваиваем указателю bin значение, равное адресу последнего символа строки tmp */
do
{
ost = byte (dec % 2);
*(--bin) = ost + '0';
dec = dec / 2;
} while (dec);
/* Операция декремент (--bin) позволяет записывать цифры в строку в обратном порядке */
cout << "Соответствующее 2-ое число: ";
cout << bin << endl; // выводим значение по адресу bin, а не tmp!
_getch();
return 0;
}
/* При организации повторения программы, необходимо обратить внимание на то, чтопри каждом повторенииуказателюbinдолжнoприсваиваться значениеадреса последнего символастрокиtmp*/
Второй вариант ( с использованием индексации)
#include <iostream>
#include <iomanip>
#include <math.h>
#include <conio.h>
#include <String.h>
#include <windows.h>
using namespace std;
int main()
{
if(SetConsoleCP(1251)==0
{
cerr<<"Fialed to set codepage!"<<endl
}
if(SetConsoleOutputCP(1251)==0)
{
cerr<<"Failed to set OUTPUT page!"<<endl;
}
long dec;
byte ost;
char bin[81];
cout <<"Введите целое десятичное число --> ";
cin >> dec;
int i = 0; // номер символа в строке
do
{
bin[i++] = dec % 2 + '0'; // записываем цифры в начало строки
dec = dec / 2;
} while (dec);
bin[i] = ‘\0’; // Не забудем отметить конец строки
strrev(bin);
// Для получения правильного ответа строку необходимо перевернуть
cout<<"Соответствующее 2-ое число:\n";
cout<<bin<<endl;
_getch();
return 0;
}
/* Второй вариант может показаться более понятным, однако в этом случае нам пришлось воспользоваться функцией strrev() из библиотеки функций для работы со строками, а использование указателей дает нам больше возможностей по работе с ячейками памяти */