Файл: Лабораторная работа 01 Среды разработки программ на языке С Драчева Кристина Проверил Савин Н. И. Тула 2023.docx
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 04.02.2024
Просмотров: 301
Скачиваний: 3
-
Решение можно рассматривать как хранилище всей информации, необходимой для компиляции программы и ее перевода в форму, пригодную для исполнения. Таким образом, решение состоит из одного или нескольких проектов; различных вспомогательных файлов (графических изображений, ресурсных файлов, метаданных, то есть данных, описывающих другие данные, и т. д.); документации в формате XML. Решение позволяет легко выбрать файлы, задействованные в решении конкретной проблемы -
В Microsoft Visual Studio .NET. Новоерешениесоздаетсякомандой File > New >Project. Далее требуется выбрать тип проекта, который будет первым в решении, имя решения, и каталог где оно будет находиться. Все новые проекты добавляются в решение лишь с одним отличием, при создании проекта в поле «решение» требуется выбрать «В текущее» (AddtoSolution) вместо «в новое решение» (Createnewsolution). В MicrosoftVisualStudio 2019 вместе с решением создается и первый проект. Его можно создать при запуске программы, нужно нажать на кнопку «Создание проекта» ввести имя решения, имя проекта и выбрать директорию. -
В распоряжении разработчика имеется средство IntelliSense, выдающее информацию о методах заданного объекта или параметрах, передаваемых при вызове функции (рис. 2). Обычно IntelliSense вызывается автоматически, но его можно вызвать нажатием «Ctrl + Пробел» -
В Visual Studio поддерживается список задач (task list). Идея состоит в том, что в программу включаются комментарии с описанием действий, которые предполагается выполнить в будущем; тип задачи определяется специальным ключевым словом, следующим после знака комментария. В настоящее время определены три встроенные категории задач — TODO, HACK и UNDONE. Комментарии с задачами выводятся в окне, вызываемом командой View > Other Windows > Task List (или комбинацией клавиш Ctrl+/, Ctrl + T). -
Редактор поддерживает и такую возможность, как свертка фрагментов программы и отображение на их месте заголовков (folding). Обратите внимание на значки «-» рядом с некоторыми строками на рисунке 2. Если щелкнуть на таком значке, в листинге будет скрыта соответствующая область (region), а после первой строки кода из блока появится многоточие. Если задержать указатель мыши над многоточием, на экране будет показан свернутый код. Для управления сверткой используется подменю Edit > Outlining -
Функции окна свойств в VS .NET уже не ограничиваются простым заданием свойств элементов управления. Содержимое окна зависит от того, что в настоящий момент выделено в IDE. Имя и тип выделенного элемента указаны в списке, находящемся в верхней части окна. Чтобы изменить значение свойства, щелкните в правой ячейке и начинайте вводить символы. В окне свойств действуют стандартные комбинации клавиш, используемые при редактировании в системе Windows. -
В окне вывода (вызываемом командой View >Output или комбинацией клавиш Alt + 2) отображается текущая информация состояния. При построении решения в этом окне компилятор выводит сообщения как об успешном завершении, так и о возникших ошибках. В окне ошибок выводятся все ошибки или предупреждения возникшие во время компиляции программы. Оно вызывается сочетанием клавиш Ctrl + /, Ctrl + E. -
В окне решения (Solution Explorer), показанном на рис. 4, выводится список файлов, входящих в решение. По умолчанию имя решения совпадает с именем первого созданного в нем проекта. -
Настройка большинства глобальных параметров редактора выполняется в диалоговом окне — выполните команду Tools > Options и выберите в списке строку Text Editor. Например, чтобы выбрать размер позиций табуляции, щелкните в строке Text Editor и выберите нужное значение для всех языков или только для С++. Здесь же выбирается режим создания отступов: None (отступы отсутствуют), Block (курсор выравнивается по началу предыдущей строки) или Smart (автоматическое создание отступов в теле цикла, как того требует хороший стиль программирования). -
Устанавливать размер позиций табуляции и форматировать отступы можно в готовом тексте, для чего используются комбинации клавиш Ctrl+K, Ctrl+F (сочетания клавиш требуется нажать подряд, без длительной паузы) или команда Edit > Advanced > Format Selection. Также изменять отступы выделенного блока можно используя Tab для увеличения отступа и Shift + Tab для уменьшения. -
MVS 2019 Файл > Создать > Файл или Файл > Создать > Проект. MVS .NET Для этого требуется щелкнуть правой кнопкой мыши по папке, куда необходимо добавить файл, в контекстном меню выбрать Add>NewItem (Добавить > Новый элемент), чтобы добавить новый файл, или Add>ExistentItem (Добавить > Существующий элемент), чтобы добавить существующий файл.
5. Вывод по проделанной работеУстановил и настроил MVS 2019. Научился работать с базовыми аспектами программы для дальнейшего программирования.МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ «ТУЛЬСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ»Институт Прикладной математики и компьютерных наукКафедра Вычислительной техникиУчебная дисциплинаПрограммированиеУровень профессионального образования: (высшее образование – бакалавриат)Направление подготовки: Информатика и вычислительная техникаПрофиль подготовки: Электронно-вычислительные машины, комплексы, системы и сетиЛабораторная работа № 02Управление потоком кодаВыполнила: Драчева КристинаПроверил Савин Н.И.Тула 20231. Цель работыОсвоить средства создания циклов различных типов в программах на C++ и операторов управления потоком команд.2. Техническое задание1.Написать программу, выводящую на экран таблицу умножения, используя цикл for. 2. Написать программу вывода на экран элементов ряда Фибоначчи S[i] = S[i – 1] + S[i – 2]; i = [1…n]; S[1] = 1, S[2] = 1. 3. Написать программу, выводящую на экран таблицу умножения, используя цикл while. 4. Написать программу, определяющую, является ли заданное число простым. 5. Написать программу, которая выводит на экран сопоставление чисел и дней недели в месяце. Число дней в месяце, и день недели первого числа задаются. 6. Написать программу, которая для заданного числа подсчитывает произведение всех четных и сумму всех нечетных чисел до него. 3.Постановка задачи Решить заданные задачи и ответить на контрольные вопросы.Способ решения. Для решения поставленной задачи будет использован объектно-ориентированный язык программирования С++.4. Ход работыЗадание№1Листинг программы:int main() {int i,k;for (i = 1; i < 10; i++) {for (k = 1; k < 10; k++) printf("%4d", i * k);printf("\n");}} Задание№2 Листингпрограммы:usingnamespace std;unsignedlonglong f(unsignedshortn) {returnn< 2 ? n : f(n - 1) + f(n - 2);}int main() {cout << f(6);return 0;
}
}
i = [1…n]
usingnamespace std;
int main()
{
setlocale(LC_ALL, "Russian");
float summa;
int n;
cout<<"Введитедлинуряда : "; cin>>n;
summa = 0;
for (int i = 1; i <= n; i++) {
summa = summa + (double)1 / i;
}
cout <<"Суммаряда = : "<< summa << endl;
system("PAUSE");
return 0;
}
Задание№3
Листингпрограммы:
usingnamespace std;
int i = 1;
int main() {
int i = 1;
while (i <= 9)
{
int j = 1;
do {
cout << setw(15) << i <<"*"<< j <<"="<< i * j << setw(15) << i + 1 <<"*"<< j <<"="<< (i + 1) * j << setw(15) << i + 2 <<"*"<< j <<"="<< (i + 2) * j << endl; j++;
} while (j <= 10);
cout << endl;
i += 3;
}
}
Задание№4
Листингпрограммы:
usingnamespace std;
int n, i;
bool b = false;
int main() {
int n, i;
bool b = false;
cin >> n;
for (i = 2; i < n; i++)
{
if (n% i = 0) {
b = true;
}
if (b = true)
{
cout <<"Не натуральное";
}
else
{
cout <<"Натуральное";
};
}
}
Задание№5
Листингпрограммы:
usingnamespacestd;
int main()
{
setlocale(LC_ALL, "Russian");
unsignedint D, R;
cout <<" D = "; cin >> D;
R = D % 7;
switch (R)
{
case 3: cout <<" Понедельник \n "; break;
case 4: cout <<" Вторник \n "; break;
case 5: cout <<" Среда \n "; break;
case 6: cout <<" Четверг \n "; break;
case 0: cout <<" Пятница \n "; break;
case 1: cout <<" Суббота \n "; break;
case 2: cout <<" Воскресенье \n "; break;
}
return 0;
}
Задание№6
Листингпрограммы:
usingnamespacestd;
int main()
{
setlocale(LC_ALL, "Russian");
int sum = 0, mult = 0, a, b;
cin >> a;
cin >> b;
for (int i = a; i <= b; i++) {
if (i%2 == 0) {
sum += i;
}
else {
mult += i;
}
}
cout <<"Суммачетных:"<< sum;
cout <<"Сумма не четных:"<< mult;
}
5. Ответы на контрольные вопросы
-
while (Условие) {Тело цикла;} -
Цикл do while очень похож на цикл while. Единственное их различие в том, что при выполнении цикла do while один проход цикла будет выполнен независимо от условия. Решение задачи на поиск суммы чисел от 1 до 1000, с применением цикла do while. -
for (действие до начала цикла; условие продолжения цикла; действия в конце каждой итерации цикла) { инструкция цикла; инструкция цикла2; инструкция цикла N; } -
Когда оператор break выполняется в структурах while, for, do/while или switch, происходит немедленный выход из структуры. Программа продолжает выполнение с первого оператора после структуры. Обычное назначение оператора break — досрочно прерывать цикл или пропустить оставшуюся часть структуры switch. -
Ранее мы установили, что в большинстве случаев структура while может использоваться вместо for. Единственным исключением является случай, когда выражение приращения в структуре while следует за оператором continue. В этом случае приращение не выполняется до проверки условия продолжения цикла и структура while работает не так, как for.
6. Вывод по проделанной работеОсвоил средства создания циклов различных типов в программах на C++ и операторов управления потоком команд.МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ «ТУЛЬСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ»Институт Прикладной математики и компьютерных наукКафедра Вычислительной техникиУчебная дисциплинаПрограммированиеУровень профессионального образования: (высшее образование – бакалавриат)Направление подготовки: Информатика и вычислительная техникаПрофиль подготовки: Электронно-вычислительные машины, комплексы, системы и сетиЛабораторная работа № 03Массивы и указатели в программах на языке С++Выполнила: Драчева КристинаПроверил Савин Н.И.Тула 20231. Цель работыПознакомиться с принципами использования массивов, указателей и адресной арифметикой в программах на языках C и C++.2. Техническое задание1. Написать программу поиска минимального элемента в трёхмерном массиве используя адресную арифметику. 2. Разработать программу суммирования элементов массива A[4][5] по строкам и столбцам используя адресную арифметику. Результат записать в отдельный массив B[9]. 3. Написать программу подсчета среднего арифметического элементов целочисленного массива A[25][30] используя адресную арифметику. Память под массив выделить динамически. 4. Написать программу, определяющую в массиве A[47] число отрицательных элементов, находящихся на позициях с чётными номерами используя адресную арифметику. 5. Для массива A[87] обнулить все элементы меньше заданного значения B. После этого все ненулевые элементы перенести в новый массив C, память под который выделить динамически используя адресную арифметику. 6. Дан символьный массив C[]. Определить, является ли строка, определяемая им, палиндромом («симметричной» относительно «центра» последовательностью) используя адресную арифметику3.Постановка задачи Решить заданные задачи и ответить на контрольные вопросы.Способ решения. Для решения поставленной задачи будет использован объектно-ориентированный язык программирования С++.
4. Ход работыЗадание №1Листинг программы:int main(){int arr[5][5][5];for (int i = 0; i < 5;i++)for (int j = 0; j < 5;j++)for (int k = 0; k < 5;k++)arr[i][j][k] =20 + rand()%20;}Задание№2Листингпрограммы:usingnamespace std;int main(){setlocale(LC_ALL, "Russian");constint arraySize = 100;int array[arraySize][arraySize];int summArray[arraySize] = { 0 };int summArray2[arraySize] = { 0 };int col = 4, row = 5;for (int i = 0; i < row; ++i) {for (int j = 0; j < col; ++j) {cout <<"Введите A["<< i + 1 <<"]["<< j + 1 <<"] значение: ";cin >> array[i][j];}}cout << endl <<"Исходнаяматрица: "<< endl;for (int i = 0; i < row; ++i) {for (int j = 0; j < col; ++j) {cout << setw(5) << array[i][j];}cout << endl;}for (int i = 0; i < row; ++i) {for (int j = 0; j < col; ++j) {summArray[j] += array[i][j];}}for (int j = 0; j < col; ++j) {for (int i = 0; i < row; ++i) {summArray2[i] += array[i][j];}}cout << endl;for (int j = 0; j < col; ++j) {cout << j + 1 << setw(5) << summArray[j] << endl;}for (int i = 0; i < col; ++i) {cout << i + 1 << setw(5) << summArray2[i] << endl;}return 0;}Задание№3Листингпрограммы:int main() {setlocale(LC_ALL, "Russian");srand(time(NULL));const std::size_t rows = 25;const std::size_t cols = 30;int** matrix = newint* [rows];for (std::size_t i = 0; i < rows; ++i) {*(matrix + i) = newint[cols];}int sum = 0;for (std::size_t i = 0; i < rows; ++i) {for (std::size_t j = 0; j < cols; ++j) {*(*(matrix + i) + j) = rand() % 101 - 50;sum += *(*(matrix + i) + j);}}std::cout<<"Сумма: "<< sum << std::endl<<"Количество элементов : "<< rows * cols << std::endl<<"Результат: "<< sum / double(rows * cols) << std::endl;for (std::size_t i = 0; i < rows; ++i) {delete[] matrix[i];}delete[] matrix;return 0;}Задание№4Листингпрограммы:usingnamespace std;int main() {int A = 47, num;setlocale(LC_ALL, "Russian");for (size_t i = 0; i < 47; ++i) {if (!((i + 1) % 2) && (A + i) < 0)++num;}}Задание№5usingnamespace std;int main(){setlocale(LC_ALL, "Russian");int B;cout <<"Введите значение В ";cin >> B;std::vector
A.erase
(
std::remove_if
(
std::begin(A), std::end(A),
[=](intn)
{
returnn< B;
}
),
A.end()
);
std::copy(
std::begin(A),
std::end(A),
std::ostream_iterator
);
return 0;
}
Задание №6
Листингпрограммы:
usingnamespace std;
int IsPal(intv[], intl)
{
int i;
for (i = 0; i
if (v[i] != v[l - i - 1]) return 0;
return 1;
}
int main()
{
setlocale(LC_ALL, "Russian");
int arr[10];
if (IsPal(arr, 10)) printf("Этопалиндром\n");
else printf("Это не палиндром\n");
system("pause");
}