л.р по информатике / ЛР1
.docxЛабораторная работа №1
студентки группы ИТ-12
Коршак Кристины Сергеевны
Выполнение:______ Защита:______
РАБОТА В СРЕДЕ MICROSOFT VISUAL STUDIO 2010. РЕАЛИЗАЦИЯ ЦИКЛИЧЕСКИХ АЛГОРИТМОВ СРЕДСТВАМИ ЯЗЫКА С/С++
Цель работы: получить навыки в создании, настройке и отладке консольных приложений на языке программирования C/C++ в среде Visual Studio; ознакомиться с основными библиотечными функциями ввода-вывода; получить навыки в составлении простейших циклических алгоритмов и реализации их средствами языка С/С++.
СОДЕРЖАНИЕ РАБОТЫ
1. Ознакомиться с теоретическим материалом.
2. В среде Visual Studio 2010 создать решение (консольное приложение). Настроить его свойства по аналогии с примером, рассмотренным в теоретических сведениях. В составе решения составить программу, которая выводит на экран ФИО студента, выполняющего работу и номер группы. Также программа должна содержать описание двух целочисленных переменных, которые вводятся с клавиатуры, а затем их сумма выводится на экран. Использовать сначала средства ввода-вывода языка С, затем С++.
3. При наборе программы отработать использование основных возможностей редактора кода.
4. Произвести отладку программы в обычном и пошаговом режимах. В отчет внести текст программы, а также скриншоты информационного окна после построения и при пошаговом выполнении программы и окна консоли с результатом работы программы.
5. Выбрать алгоритм, составить его блок-схему и программу с использованием оператора цикла for для вычисления и вывода на экран в точках xi=a+i*h, i=0,1,2…,n, h=(b-a)/n промежутка [a,b] значений функции y=f(x), указанной в варианте задания (см. ниже). Также программа должна определять наибольшее и среднее значение функции. Предусмотреть проверку вычисляемых значений аргумента на принадлежность области допустимых значений. Ввод исходных данных (a, b, n) осуществлять с клавиатуры.
6. Составить аналогичные блок-схему и программу, но с использованием оператора цикла while или do-while на выбор.
7. Создать новое решение, в которое в виде отдельных проектов включить программы, созданные при выполнении пунктов 5 и 6. В отчет внести обе блок-схемы и программы, а также результаты их тестирования.
Отчет
2. Текст программы:
|
|
#include <conio.h> #include <locale.h> #include <stdio.h>
int main () { int a,b,s; setlocale(LC_CTYPE,""); printf("Коршак Кристина Сергеевна\n"); printf(" ИТ-12 \n"); printf("Для нахождения суммы двух чисел S, введите 2 числа \n"); printf("a="); scanf("%i", &a); printf("b="); scanf("%i", &b); s=a+b; printf("S="); printf("%i",s); getch(); }
|
#include <conio.h> #include <locale.h> #include <iostream>
using namespace std; int main () { int a,b,s; setlocale(LC_CTYPE,""); cout<<"Коршак Кристина Сергеевна"<<endl; cout<<" ИТ-12 "<<endl; cout<<"Для нахождения суммы двух чисел S, введите 2 числа"<<endl; cout<<("a="); cin>>a; cout<<"b="; cin>>b; s=a+b; cout<<"S="<<s; getch(); }
|
Информационное окно
После построения:
При пошаговом выполнении:
Консоль с результатом выполнения
Результаты тестирования программы:
Ввод a, b |
Вывод S |
-4,2 |
-2 |
-10,-3 |
-13 |
20,2 |
22 |
Вывод: Для ввода-вывода информации, легче работать используя средства стандартной библиотеки языка C++ описанных в заголовочном файле iostream. Информационное окно при пошаговом режиме отладки позволяет лучше следить за выполнением программы(отслеживать изменения переменных).
Задание пункт 5,6
Задание:
Текст программы:
С циклом for |
С циклом while |
#include <stdafx.h> #include <stdio.h> #include <locale.h> #include <math.h> #include <conio.h> int main() {setlocale(LC_CTYPE, ""); double x,y,h; float a,b,max=0,mid=0; int i,n,j=0; printf("Введите n, a, b:"); scanf("%i %f %f",&n,&a,&b); h = (double)(b - a)/n; for (i=0;x<b;i++) {x=a+h*i; if (x!=0 && (x*x)!=1) { y=(pow(x+sin(x),1/3)/(pow(x,2)-pow(x,4)))*pow(asin(pow((3-x),1/4)),2); if (j==0) max=y; else { if (y>max) max=y;} printf("x=%.2f y=%.2f\n",x,y); mid+=y; j++; } else { printf("x=%.2f функция не существует\n",x); } } if (j!=0) { mid=mid/j; printf("среднее=%.2f максимум=%.2f",mid,max); } else { printf("функция не существует во всех точках"); } getch(); }
|
#include "stdafx.h" #include <stdio.h> #include <locale.h> #include <math.h> #include <conio.h> int main() { setlocale(LC_CTYPE, ""); float a,b,max=0,mid=0; double x,y,h; int i=0,n,j=0; printf("Введите n, a, b:"); scanf("%i %f %f",&n,&a,&b); h=(b - a)/n; x=a; while (x<b) { x=a+h*i; if (x!=0 && (x*x)!=1) { y=(pow(x+sin(x),1/3)/(pow(x,2)-pow(x,4)))*pow(asin(pow((3-x),1/4)),2); i++; if (j==0) max=y; else { if (y>max) max=y;} printf("x=%.2f y=%.2f\n",x,y); mid+=y; j++; } else { printf("x=%.2f функция не существует\n",x); } } if (j!=0) { mid=mid/j; printf("среднее=%.2f максимум=%.2f",mid,max); } else { printf("функция не существует во всех точках"); } getch(); } |
Результаты тестирования программы:
Вывод: Язык С имеет три оператора цикла, каждый из которых имеет свои особенности и возможности.