Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
56
Добавлен:
22.03.2016
Размер:
2.85 Mб
Скачать

Лабораторная работа №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();

}

Результаты тестирования программы:

Вывод: Язык С имеет три оператора цикла, каждый из которых имеет свои особенности и возможности.

Соседние файлы в папке л.р по информатике