- •Лабораторная работа №1 Тема: “Программы, использующие команды ветвления. Отладка программы“ Отладка программы
- •Часть 1 Ветвление в программе с помощью вложенных конструкций if-else Задание
- •Пример 1
- •Пример 2
- •Организация повторения программы
- •Выполнение программы в пошаговом режиме
- •Задание для самостоятельного выполнения
- •Часть 2 Ветвление в программе с помощью оператора switch
- •Задание для самостоятельного выполнения
- •Программа, которая проверяет, является ли число простым
- •Программа, которая проверяет, является ли число палиндромом
- •Часть 2 Программы, использующие рекуррентные соотношения
- •Программа, которая находит числа Фибоначчи в заданном диапазоне.
- •Программа, которая находит значение квадратного корня из заданного числа, используя рекуррентное соотношение:
- •Программа, которая вычисляет сумму ряда с заданной точностью.
- •Пример – программа, которая вычисляет сумму ряда для заданного количества слагаемых.
- •Задания для самостоятельного выполнения
- •Лабораторная работа № 3 Тема: “Программы, использующие вспомогательные функции”.
- •1. Программа, которая считывает координаты вершин треугольника на плоскости и находит все углы этого треугольника в градусах.
- •2. Программа, которая находит заданное количество чисел, содержащих цифру 3
- •3. Программа, которая находит на заданном отрезке натуральные числа, которые можно представить в виде суммы квадратов двух натуральных чисел.
- •Программа, которая находит первое автоморфное число справа от заданного.
- •6. Программа для вычисления биноминальных коэффициентов
- •Задания для самостоятельного выполнения
- •Лабораторная работа № 4 Тема: “Программы, использующие строки символов ”.
- •Программа, которая считывает строку символов и сортирует ее по возрастанию кодов символов
- •Программа перевода числа из десятичной системы счисления в двоичную
- •Первый вариант (с использованием указателя)
- •Второй вариант ( с использованием индексации)
- •Программа перевода числа из двоичной системы в десятичную
- •Программа перевода числа из 16-ой системы счисления в 2-ую.
- •Программа перевода числа из 2-ой системы счисления в 16-ую.
- •If (!strcmp(table[j].Bin,tmp)) // если strcmp() вернула 0, значит tmp совпала с I-ой строкой таблицы
- •Программа, которая выводит на экран треугольник Паскаля (треугольник биноминальных коэффициентов)
- •Задания для самостоятельного выполнения
- •Лабораторная работа № 5 Тема: “Программы, использующие файлы ”.
- •Программа, которая считывает имя файла, открывает его и подсчитывает количество скобок каждого вида, содержащихся в файле.
- •Программа, инвертирующая файл (переставляющая символы в обратном порядке)
- •Программа выводит на экран n-ую строку файла
- •Программа, которая переписывает текст из одного файла в другой, удаляя лишние пробелы между словами и делая ширину текста максимум 70 символов
- •5. Программа, которая считывает текст файла и создает новый файл, заменив во всем тексте заданное слово на новое (не изменяя деление на строки и количество пробелов между словами)
- •6. Программа, которая считывает данные для структуры Man из файла.
- •Программа создающая новый текстовый файл из двух данных, в котором 1-я строка –строка из первого файла, 2-я строка – строка из 2-го файла, 3-я строка – содержит общие символы первых 2-х строк.
- •Задания для самостоятельного выполнения
- •Лабораторная работа № 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 bin[81]; // Строка для хранения двоичного числа
long dec=0; // Результат перевода
char *pb = bin; /* указатель, с помощью которого мы будем получать символы строки (двоичные цифры) */
char ch;
int i=0;
cout << "Введите двоичное число без знака "<<endl;
do
{
ch=_getch();
if(ch=='0'||ch=='1')
{
bin[i++]= ch;
cout << ch;
}
} while (ch != '\r' && i < 81);
bin[i]=’\0’;
cout << endl;
while (*pb) // пока строка не закончена
dec = dec * 2 + *pb++ - '0';
// вычисляем dec, используя схему Горнера
cout << "Соответствующее десятичное число: ";
cout << dec << endl ;
_getch();
return 0;
}
Программа перевода числа из 16-ой системы счисления в 2-ую.
Для перевода 16-го числа в двоичное преобразуем каждую 16-ю цифру в десятичное число, которое в свою очередь переведем в четверку 2-х цифр. Поскольку при переводе мы получаем цифры в обратном порядке, перевернем все 16-е число, переведем каждую цифру, затем перевернем всю 2-ю строку ( например: b6 -> 6b -> 0110 1101 -> 1011 0110)
В этом примере будем считывать 16-е число посимвольно с проверкой каждого символа.
#include<iostream>
#include<iomanip>
#include<math.h>
#include<conio.h>
#include<String.h>
#include<ctype.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 ch;
int n, k ;
char hex[81]; // 16-е число
char bin[321]; // 2-е число
cout<<"Введите 16-ое число: \n";
n=0; k=0; // счетчики символов
while ( ( ch=_getch() ) != '\r') /* пока не нажата клавиша <Enter>, считываем символы с помощью функции _getch() */
{
if (isxdigit(ch) && k<79) /* если считана 16-я цифра и кол-во цифр не слишком велико */
{
сout << ch; hex[k++]= toupper(ch); /* выводим символ на экран и записываем его в строку hex, предварительно преобразовав в большую букву */
}
else if (ch == '\b' && k > 0 ) /* Если нажата клавиша <Backspace> и количество символов в строке > 0 */
{
Cout << "\b \b"; // стираем последний символ на экране
k--; // и возвращаемся в строке на 1 байт назад
}
} //end while
hex[k]=0; bin[n]=0; cout << endl;
// Отмечаем концы строк и переводим курсор
cout << hex << endl; // Выводимое 16-е число будет записано большими буквами
// Перевод:
_strrev(hex); // Переворачиваем 16-е число
int des; //Здесь будет храниться 10-е число, соответствующее каждой 16-й цифре
for (UINT i=0; i<strlen(hex); i++) // проходим по строке, хранящей 16-е число
{
// если очередной символ - цифра
if (hex[i] <= '9')
des = hex[i] - '0'; // получаем соответствующее число
else des = hex[i]-'A'+10; // иначе получаем число для буквы
// получаем 4 двоичных цифры для одной 16-й:
for (int j=0; j<4; j++)
{
bin[n++] = des % 2 + '0';
des/=2;
}
}
bin[n] = '\0';
_strrev(bin); // переворачиваем 2-е число
cout<<"Соответствующее 2-ое число = \n";
for (UINT i=0; i<strlen(bin); i++) /* выводим 2-е число, разделяя каждую четверку цифр пробелом */
{
cout<<bin[i];
if ((i+1)%4==0) cout <<' '; /* Если номер выведенной цифры делится на 4, выводим пробел */
}
cout <<endl; // не забывайте переводить курсор в начало следующей строки
_getch();
return 0;
}