Отчет программирование1 сем
.docЗадание №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.2510-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.