Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Отчет программирование1 сем

.doc
Скачиваний:
10
Добавлен:
01.04.2014
Размер:
96.26 Кб
Скачать

Задание №1

Создать программу вычисления указанной величины. Результат проверить при заданных исходных значениях.

Текст программы с использованием стандартных функций ввода-вывода, может иметь следующий вид:

#include <iostream.h>

#include <conio.h>

#include <math.h>

int main()

{

double x,y,z,q,a,b,c,rez;

cout <<"\n\t x,y,z =" << endl;

cin >>x>>y>>z;

q = 5*atan(x);

a = acos(x)/4;

b = x+3*fabs(x-y)+x*x;

c = z*fabs(x-y)+x*x;

rez = q-a*b/c;

cout<<"\n x ="<<x <<"\n y ="<<y <<"\n z ="<<z <<"\n Rezultat ="<<rez<<endl;

cout<<"Press any key to exit =)"<<endl;

getch();

}

Введя исходные данные x = 0.1722, y = 6.33, z = 3.2510-4 (z – в форме с плавающей точкой), результат выполнения программы будет иметь следующий вид:

Задание №2

Составить программу для вычисления значения rez в зависимости от поставленного условия.

Для получения результатов подобрать исходные данные так, чтобы выполнялись все возможные ветви алгоритма. Перед выводом полученного результата должно выводиться сообщение о ветви, при прохождении которой он получен.

rez =

Текст программы может иметь седующий вид:

#include <iostream.h>

#include <conio.h>

#include <math.h>

void main()

{

double m,r,rez;

cout <<"input m,r =" << endl;

cin >>m>>r;

switch (1)

{

case 1: r <= m < 2*r;

{

rez=sqrt(fabs(3*m-5*r))*exp(m/r);

cout<<"r<=m<2*r"<<endl;

cout<<"\n\t Rezult = "<<rez;

}

break;

case 2: m > 2*r;

{

rez=sqrt(fabs(3*m+5*r))*exp(r/m);

cout<<"\n\t m>2r"<<endl;

cout<<"\n\t Rezult = "<<rez;

}

break;

default:

{

cout<<"\n\t SyStem Fail!!!"<<endl;

}

}

cout<<"\n Press any key to exit =)"<<endl;

getch();

}

Результаты выполнения программы для различных исходных данных, вводимых в одной строке, разделяя их пробелами, могут иметь следующий вид:

1 вариант введенные значения соответсвуют первому условию:

2 вариант введенные значения соответсвуют второму условию:

3 вариант введенные значения не соотвецтвуют не одному из вариантов:

Задание №3

Для каждого x, изменяющегося от a до b с шагом h, найти значения функции Y(x), суммы S(x) и |Y(x)–S(x)| и вывести в виде таблицы. Значения a, b, h и n вводятся с клавиатуры.

Работу программы проверить для a = 0,1; b = 1,0; h = 0,1; значение параметра n выбрать в зависимости от задания.

Текст программы предложенного задания может иметь следующий вид:

#include <iostream.h>

#include <conio.h>

#include <math.h>

#define pi 3.1415927

void main()

{

double x,a,b,h,y,s,r,Y,S,m;

int n,zn=-1/2,k;

cout<<"imput a,b,h,n"<<endl;

cin>>a>>b>>h>>n;

for (x=a; x<=b; x+=h)

{

r=s=1;

Y=zn*log(1-2*x*cos(pi/3)+x*x);

for(k=1;k<=n;k++)

{

r=(pow(x,k)*cos(k*pi/3))/k;

s+=r;

}

m=fabs(Y-r);

cout<<"\n \t x= "<<x <<" S(x)="<<s <<" Y(x)= "<<Y <<" mod="<<m<<endl;

}

cout<<"press any key to exit =)"<<endl;

getch();

}

Результат программы с введенными в одной строке значениями a = 0,1; b = 1,0; h = 0,1 и n=1, будет иметь следующий вид:

Задание №4

В одномерном целочисленном массиве (размер массива (не больше 20) и значения его элементов вводить с клавиатуры) вычислить cумму элементов массива, расположенных до минимального элемента.

Текст программы с использованием ввода-вывода в потоках может иметь следующий вид:

#include <iostream.h>

#include <conio.h>

#include <math.h>

void main()

{

int a[20],n,i,s=0,r=0;

cout<<"\t Input n(<=20) n= ";

cin>>n;

cout<<"\n\t Massiv A"<<endl;

for (i=0;i<n;i++)

{

cout<<"\t a[ "<<i+1<<"] = ";

cin>> a[i];

for (r=a[1];r<=ceil(a[i]) ; r++)

{

r=a[i];

s+=r;

}

}

cout<<"\n\t Summa= "<<s<<endl;

cout<<"press any key..."<<endl;

getch();

}

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

Задание №5

В двухмерном целочисленном массиве (размеры массива N, M и значения его элементов вводить с клавиатуры) найти количество отрицательных и положительных элементов массива.

#include <alloc.h>

#include <iostream.h>

#include <conio.h>

#include <math.h>

void main()

{

int **a,i,j,n,m,so=0,sp=0,ko=0,kp=0;

cout<<"\t Input N,M : ";

cin>>n>>m;

a= new int*[n];

for(i=0;i<n;i++)

a[i]=new int[m];

cout<<"\n Input A "<<endl;

for(i=0;i<n;i++)

for(j=0;j<m;j++)

{

cout<<"\t a["<<i+1<<"]["<<j+1<<"]= ";

cin>>a[i][j];

}

cout<<"\n Matrix A:"<<endl;

for(i=0;i<n;i++)

{

for(j=0;j<m;j++)

cout<<"\t"<<a[i][j];

cout<<endl;

}

for(i=0;i<n;i++)

for(j=0;j<m;j++)

{

if (a[i][j]<0)

{

ko++;

so+=a[i][j];

}

if (a[i][j]>0)

{

kp++;

sp+=a[i][j];

}

}

cout<<"\n Kolichestvo otr = "<<ko<<"\t Summa otr = "<<so<<endl;

cout<<"\n Kolichestvo pol = "<<kp<<"\t Summa pol = "<<sp<<endl;

delete []a;

cout<<"\n\t Delete =)"<<endl;

cout<<"\n Press any key to exit!"<<endl;

getch();

}

При вводе значений элементов массивов в одной строке через пробелы должен получиться следующий результат:

Литература:

1. Батура М.П., Бусько В.Л., Корбит А.Г., Кривоносова Т.М. Основы алгоритмизации и программирования. Язык Си : учеб. пособие. – Минск : БГУИР, 2007.