LAB-C (Программирование на С++)
Описание файла
Документ из архива "Программирование на С++", который расположен в категории "". Всё это находится в предмете "информатика" из , которые можно найти в файловом архиве . Не смотря на прямую связь этого архива с , его также можно найти и в других разделах. Архив можно найти в разделе "рефераты, доклады и презентации", в предмете "информатика, программирование" в общих файлах.
Онлайн просмотр документа "LAB-C"
Текст из документа "LAB-C"
МИНИСТЕРСТВО ОБЩЕГО И ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ.
МОСКОВСКИЙ ГОСУДАРСТВЕННЫЙ АВИАЦИОННО-ТЕХНОЛОГИЧЕСКИЙ УНИВЕРСИТЕТ
им. К.Э. ЦИОЛКОВКОГО
КАФЕДРА ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ
Лаботраторные работы второго курса второго семестра.
Руководитель: Чернадский
Дата сдачи: _____________
Подпись: _____________
Студент: Лицентов Д.Б.
Группа: 3ИТ-2-26
Москва
1998
Лабораторная работа номер 1
Задание: вывести значение функции sinh(x)/sin(x) и её производно на интервале от А до Б в десяти точках. Значения производной функции должно считаться двумя способами: первое прямым вычислением и второе в помощью рядов. Значение производной функции должно считаться до машинного нуля.
Текст программы.
#include
#include
double function(double x)
{ return sinh(x)/sin(x);}
double dir(double x)
{
return (cosh(x)*sin(x)-cos(x)*sinh(x))/(sin(x)*sin(x));
}
double *derives( double (*f) (double),//функция
double *x,//массив значений иксов
double k, //кол-во точек на интервале в которос берется производная
double *D,//массив дельта
double a,//граница отрезка
double b)//граница отрезка
{ x = new double [10];
D = new double [10];
double *pr = new double[10];
double s = 0;
for (int i=0;i<10;i++)
{
x[i] =s+a;
s = (b-a)/k;
a+=s;
double d = s;//дельта
int m = 0;
double d_pred,f_pred,f0=0;
do
{
d = d /2;
f_pred = f0;
f0 = (-f(x[i])+f(x[i]+d))/(d);
m++;
}
while (((f0!=f_pred)&&(m<=100)));//вычисляем до машинного нуля
D[i]=d_pred;//массив значений дельта
pr[i]=f_pred;//значения производной
cout << "\n x[" << i <<"] " << x[i] << "\t" < < cout << "\t"<< m; } return pr; } void main(void) { double a , b , *x , *D, (*f)(double)=function,*result; int i ; do { i=0; cout << "Input a:"; cin >> a; cout << "Input b:"; cin >> b; if (a>b) {cout <<"Input a i=1;} } while (i==1); result = derives(function,x,10,D,a,b);} Результаты работы. Input a:1 Input b:5 x[0] 1 0.93704 0.937041 3.9346e-311 33 x[1] 1.8 3.895777 3.895777 3.9346e-311 53 x[2] 2.12 7.899375 7.899994 3.9346e-311 39 x[3] 2.408 17.496182 17.496226 3.9346e-311 33 x[4] 2.6672 46.255806 46.383292 3.9346e-311 43 x[5] 2.90048 203.810226 192.558503 3.9346e-311 47 x[6] 3.110432 11886.359648 11886.359648 3.9346e-311 51 x[7] 3.299389 454.965295 454.757697 3.9346e-311 43 x[8] 3.46945 96.558946 96.562709 3.9346e-311 36 x[9] 3.622505 36.997996 36.99798 3.9346e-311 32 Сперва прога просит ввести интервал. Далее вывоти плоды своей работы: первый столбик –номер эксперимента второй столбук - значение финкйии третий столбик значение которое получается «напрямую» четвёртый столбик - значение которое получается вычислением с помощью рядов пятый столбик – машинный ноль шестой столбик - количество итераций которое было необходимо для вычисления производной функции до машинного нуля. Задание: написать программу которая просит ввести строку, нарезает эту строку на подстроки и выводит их в обратном порядке. Текст программы. #include #include #include class stroka { char *ch; int len; friend int operator == (stroka & a , stroka & b); friend stroka* Friend0(stroka c); friend istream& operator >>(istream & in, stroka & a ); friend ostream& operator <<(ostream & out, stroka & a ); public : stroka(int N=80) {ch = new char [N]; ch[0]='\0'; } stroka (const char *s) { int j=0; while (ch[j++]); ch = new char[len]; ch[len] = '\0'; len--; for (int i=0;i ch[i]= s[i]; } void string1(void) { int j=0; while (ch[j++]); len = j-1; } ~stroka (){delete [] ch ;} } ; void main() { stroka s0,*s1; cin >> s0; s0.string1(); cout <<"\n"<<*Friend0(s0); } stroka* Friend0(stroka c) { stroka *GodDame_Mother_F_1; stroka *GodDame_Mother_F_2; stroka *GodDame_Mother_F_; GodDame_Mother_F_1 = new stroka[c.len]; GodDame_Mother_F_2 = new stroka[c.len]; GodDame_Mother_F_ = new stroka[c.len]; int i=0,j=0,k=-1,h=0,g=0,f=0; for(i=0;i<=c.len;i++){ if(((c.ch[i]==' '||c.ch[i]=='.')&&((c.ch[i+1]!=' ')||(c.ch[i-1]!=' ')))){ //cout< k++; //j=0; g=0; for(k;k if(c.ch[k]!=' '){ //cout< GodDame_Mother_F_1[0].ch[j++]=c.ch[k]; GodDame_Mother_F_2[0].ch[g++]=c.ch[k]; } } h++; //for(f=0;f //cout<<'\n'; int s,s1; for(int d=i;d s1=0; for(f=0;f s=0; if(GodDame_Mother_F_2[0].ch[f]!=c.ch[d+f]){ //cout<<"I won!!!!!"; s=1; } if(s!=0){s1=1;} } if(s1==0&&GodDame_Mother_F_2[0].ch[f+1]==' '){ cout<<"I won!!!!!"; for(int a=0;a } } } } return GodDame_Mother_F_; } int operator == (stroka & a,stroka & b) { int k=0; a.string1(); b.string1(); if (a.len!=b.len) k--; else for (int i=0;i if (a.ch[i]!=b.ch[i]) {k--;break;} return k; } istream &operator >>(istream &in,stroka & A) { cout <<"\n\tInput string : "; in.getline(A.ch,80,'\n'); return in; } ostream &operator <<(ostream &out,stroka & A) { out << A.ch; return out; } Результат работы. Input string : demon13 13 mon de Написать программу с наследованием классов и виртуальными функциями. Текст программы. #include class complex { public : double x,y; virtual void fun (int x=0, int y=0)=0; }; class What_the_hell_we_got: public complex { public : void fun (int x, int y) {cout<<"\n What_the_hell_we_got "<< x<<"\t"< }; class Plusssssss: public complex { public : void fun (int x=0, int y=0) {cout<<"\n Plusssssss\tx+y ="<< x+y;} }; class Umnojinia : public What_the_hell_we_got {public : void fun (int x) {cout<<"\n Umnojinia\tx*x ="<< x*x;} }; class xz : public Plusssssss , public Umnojinia {public : void fun (int x) {cout<<"\n Xzubla\t\tx^3 ="<< x*x*x;} }; void main (void) { What_the_hell_we_got D, *pcom1 = &D; Plusssssss C2, *pc2 = &C2; int k,x; cin>>x>>k; pcom1 -> fun(k,x); pc2 -> fun (k,x); Umnojinia C3, *pc3 = & C3; pc3 -> fun (x); pcom1=pc3; pcom1->fun(k,x); xz C4, *pc4 = & C4; pc4 -> fun (x); } 3 4 What_the_hell_we_got 4 3 Plusssssss x+y =7 Umnojinia x*x =9 What_the_hell_we_got 4 3 Xzubla x^3 =27 Вводим два числа и смотрим что получится при сложение умножении или возведение в третью степень.
Лабороторная работа №2
Лабораторная работа №3
Результаты работы