реферат
Главная

Рефераты по сексологии

Рефераты по информатике программированию

Рефераты по биологии

Рефераты по экономике

Рефераты по москвоведению

Рефераты по экологии

Краткое содержание произведений

Рефераты по физкультуре и спорту

Топики по английскому языку

Рефераты по математике

Рефераты по музыке

Остальные рефераты

Рефераты по авиации и космонавтике

Рефераты по административному праву

Рефераты по безопасности жизнедеятельности

Рефераты по арбитражному процессу

Рефераты по архитектуре

Рефераты по астрономии

Рефераты по банковскому делу

Рефераты по биржевому делу

Рефераты по ботанике и сельскому хозяйству

Рефераты по бухгалтерскому учету и аудиту

Рефераты по валютным отношениям

Рефераты по ветеринарии

Рефераты для военной кафедры

Рефераты по географии

Рефераты по геодезии

Рефераты по геологии

Рефераты по геополитике

Рефераты по государству и праву

Рефераты по гражданскому праву и процессу

Рефераты по делопроизводству

Рефераты по кредитованию

Рефераты по естествознанию

Рефераты по истории техники

Рефераты по журналистике

Рефераты по зоологии

Рефераты по инвестициям

Рефераты по информатике

Исторические личности

Рефераты по кибернетике

Рефераты по коммуникации и связи

Лабораторная работа: Программирование на языке Си++

Лабораторная работа: Программирование на языке Си++

Федеральное агентство по образованию.

ГОУ ВПО Уральский Государственный Технический Университет – УПИ имени первого президента России Б. Н. Ельцина

Кафедра теплофизики и информатики в металлургии.

Дисциплина: Алгоритмизация и программирование.


Отчет

Лабораторная работа №1

"Знакомство с Си++. Выполнение программы простой структуры"

Вариант 9.


Преподаватель: Степура А. А.

Студент гр. Мт-190503: Свиткин В. Г.


Екатеринбург, 2009


Цель: Знакомство со средой программирования, создание, отладка и выполнение простой программы, содержащей ввод/вывод информации и простейшие вычисления.

Задачи: 1) вычислить значение выражения при различных вещественных типах данных: float и double. Сравнить и объяснить полученные результаты.

2) Вычислить значения выражений. Объяснить полученные результаты.

Задание 1. Вычислить значение выражения при различных вещественных типах данных (float и double). Вычисления следует выполнять с использованием промежуточных переменных. Сравнить и объяснить полученные результаты.

, при а=100, b=0.001

Текст программы:

#include <cstdlib>

#include <iostream>

#include <math.h>

int main(int argc, char *argv[]){

//Объявление переменных и исходные данные

float a1=100,b1=0.001,c1;

double a2=100,b2=0.001,c2;

//Расчет значений выражения для типов float и double

//Вывод результата с 15 знаками после запятой

printf(" Float: ");

c1=(pow(a1+b1,4.0)-(pow(a1,4)+4*pow(a1,3)*b1) )/ (6 * a1 *a1 *b1* b1+ 4*a1*b1*b1+pow(b1,4) );

printf("%.15f",c1);

printf("\nDouble: ");

c2=(pow(a2+b2,4)-(pow(a2,4)+4*pow(a2,3)*b2) )/ (6*a2*a2*b2*b2 +4*a2*b2*b2 + pow(b2,4) );

printf("%.15f",c2);

system("PAUSE");

return EXIT_SUCCESS; }

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

Float: 0.993384063243866

Double: 0.993384430723606

Результаты совпадают с точностью до 6 знаков после запятой. Это происходит из-за того, что при вычислениях с типом float точность меньше, и при каждом вычислении накапливается погрешность. Вычисление с типом double точнее, чем с float.

Задание 2.Вычислить значения выражений. Объяснить полученные результаты.

n+++m

m-- >n

n-- >m

Текст программы:

#include <cstdlib>

#include <iostream>

#include <math.h>

int main(int argc, char *argv[]){

int m=7,n=4,y;

printf("n=%d,m=%d\n",n,m);

y=++n*++m;

printf("++n*++m=%d\n",y);

printf("n=%d,m=%d\n",n,m);

y=m++<n;

printf("m++<n=%d\n",y);

printf("n=%d,m=%d\n",n,m);

y=n++>m;

printf("n++>m=%d\n",y);

printf("n=%d,m=%d\n",n,m);

system("PAUSE");

return EXIT_SUCCESS; }

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

n=4,m=7

++n*++m=40

n=5,m=8

m++<n=0

n=5,m=9

n++>m=0

n=6,m=9

Объяснение результата.

При выполнении первого действия сначала переменные увеличиваются на единицу, затем умножаются: 5 * 7 =40. При выполнении второго действия сначала идет сравнение переменных, после этого переменная m увеличивается на единицу. При выполнении третьего действия сначала переменные сравниваются, затем переменная n увеличивается на единицу.


Федеральное агентство по образованию.

ГОУ ВПО Уральский Государственный Технический Университет – УПИ имени первого президента России Б. Н. Ельцина

Кафедра теплофизики и информатики в металлургии.

Дисциплина: Алгоритмизация и программирование.


Отчет

Лабораторная работа №2

" Использование основных операторов языка Си "

Вариант 9.


Преподаватель: Степура А. А.

Студент гр. Мт-190503: Свиткин В. Г.


Екатеринбург, 2009


Цель: Получение навыков в выборе и использовании операторов Си++; знакомство с итерационными процессами.

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

Найти сумму ряда с точностью e=10-4, общий член которого

Текст программы:

#include <cstdlib>

#include <iostream>

#include <math.h>

#define E 10e-4 //точность

int main(int argc, char *argv[]){

int n=1;

double s=0,a=1;

do {a*=10.0/(n+1); //расчет следующего числа ряда по рекуррентной формуле

s+=a;n++;}

while(a>E); //выход из цикла при достижении нужной точности

printf("Сумма ряда:%f\n",s);

system("PAUSE");

return EXIT_SUCCESS;}

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

Сумма ряда: 2201.546404


Федеральное агентство по образованию.

ГОУ ВПО Уральский Государственный Технический Университет – УПИ имени первого президента России Б. Н. Ельцина

Кафедра теплофизики и информатики в металлургии.

Дисциплина: Алгоритмизация и программирование.


Отчет

Лабораторная работа №3

" Вычисление функций с использованием их разложения в степенной ряд "

Вариант 9.


Преподаватель: Степура А. А.

Студент гр. Мт-190503: Свиткин В. Г.


Екатеринбург, 2009


Цель: Практика в организации итерационных и арифметических циклов.

Задача: Для х изменяющегося от a до b с шагом (b-a)/k, где (k=10), вычислить функцию f(x), используя ее разложение в степенной ряд в двух случаях:

а) для заданного n;

б) для заданной точности e (e=0.0001).

Для сравнения найти точное значение функции.

Вариант 9

Функция:

Диапазон x:

Число слагаемых ряда:

n=3

Формула для вычисления суммы:

Текст программы:

#include <cstdlib>

#include <iostream>

#include <math.h>

#define A 0.1

#define B 0.8

#define E 10e-4

int main(int argc, char *argv[]){

float x,k=(B-A)/10.0,sn=0,se=0,t,y;

int i,j,n=3;

for(x=A;x<=B;x+=k){

sn=x;se=x;

for(i=1;i<=n;i++){

sn+=pow(x,4*i+1)/(4*i+1);};

j=1;

do {t=pow(x,4*j+1)/(4*j+1);

j++;se+=t;}

while(t>E);

y=log((1.0+x)/(1.0-x))/4.0 + atan(x)/2.0;

printf("x=%.2f SN=%f SE=%f Y=%f\n",x,sn,se,y);}

system("PAUSE");

return EXIT_SUCCESS;}

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

x=0.10 SN=0.100002 SE=0.100002 Y=0.100002

x=0.17 SN=0.170028 SE=0.170028 Y=0.170028

x=0.24 SN=0.240160 SE=0.240159 Y=0.240160

x=0.31 SN=0.310576 SE=0.310573 Y=0.310576

x=0.38 SN=0.381603 SE=0.381603 Y=0.381603

x=0.45 SN=0.453777 SE=0.453775 Y=0.453777

x=0.52 SN=0.527929 SE=0.527913 Y=0.527929

x=0.59 SN=0.605342 SE=0.605261 Y=0.605350

x=0.66 SN=0.688034 SE=0.688034 Y=0.688093

x=0.73 SN=0.779289 SE=0.779568 Y=0.779652

x=0.80 SN=0.884678 SE=0.886442 Y=0.886677


Федеральное агентство по образованию.

ГОУ ВПО Уральский Государственный Технический Университет – УПИ имени первого президента России Б. Н. Ельцина

Кафедра теплофизики и информатики в металлургии.

Дисциплина: Алгоритмизация и программирование.


Отчет

Лабораторная работа №4

" Работа с одномерными массивами "

Вариант 9.


Преподаватель: Степура А. А.

Студент гр. Мт-190503: Свиткин В. Г.


Екатеринбург, 2009


Цель: Получение навыков обработки одномерных массивов.

Задача: (Вариант 9)

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

Распечатать полученный массив.

Удалить первый элемент с заданным значением.

Сдвинуть массив циклически на К элементов вправо.

Распечатать полученный массив.

Текст программы:

#include <cstdlib>

#include <iostream>

#include <time.h>

int main(int argc, char *argv[]){

int i,j,x,k,size;

srand(time(NULL));

int a[100];

int b[100];

printf("Enter size:>");

scanf("%d",&size);

for(i=0;i<size;i++){

a[i]=rand()%100;printf("%d ",a[i]);}

printf("\nEnter value to destroy:>");scanf("%d",&x);

for(i=0;i<size;i++){

if(a[i]==x){

for(j=i;j<size-1;j++){

a[j]=a[j+1];}

size--;break;}}

for(i=0;i<size;i++){

printf("%d ",a[i]);}

printf("\nEnter K:>");scanf("%d",&k);

for(i=0;i<size;i++){

if((i+k)<size) {b[i+k]=a[i];}else {b[i+k-size]=a[i];}}

printf("Result:\n");

for(i=0;i<size;i++){

printf("%d ",b[i]);}

printf("\n");

system("PAUSE");

return EXIT_SUCCESS;}

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

Enter size:>10

50 17 89 6 52 0 60 30 44 21

Enter value to destroy:>89

50 17 6 52 0 60 30 44 21

Enter K:>3

Result:

30 44 21 50 17 6 52 0 60


Федеральное агентство по образованию.

ГОУ ВПО Уральский Государственный Технический Университет – УПИ имени первого президента России Б. Н. Ельцина

Кафедра теплофизики и информатики в металлургии.

Дисциплина: Алгоритмизация и программирование.


Отчет

Лабораторная работа №5

" Функции и массивы"

Вариант 9.


Преподаватель: Степура А. А.

Студент гр. Мт-190503: Свиткин В. Г.


Екатеринбург, 2009


Цель: Организовать обработку массивов с использованием функций, научиться передавать массивы как параметры функций.

Задача: Используя функции, решить указанную задачу. Массив должен передаваться в функцию как параметр:

Вариант 9. Написать функцию для вычисления суммы элементов квадратной матрицы, которые расположены ниже главной диагонали. С ее помощью найти максимальное значение такой суммы в n матрицах.

Текст программы:

#include <cstdlib>

#include <iostream>

#include <time.h>

#include <math.h>

#define SIZE 5

static int a[SIZE][SIZE];

void CreateArray(int a[SIZE][SIZE]){

int i,j;

for(i=0;i<SIZE;i++){

for(j=0;j<SIZE;j++){

a[i][j]=rand()%100;}}}

void PrintArray(int a[SIZE][SIZE]){

int i,j;

for(i=0;i<SIZE;i++){

for(j=0;j<SIZE;j++){

printf("%d ",a[i][j]);}

printf("\n");}}

int MatrixSum1(int m[SIZE][SIZE]){

int i,j,s=0;

for(i=1;i<SIZE;i++){

for(j=0;j<i;j++){

s+=m[i][j];}}

return s;}

int main(int argc, char *argv[]){

int s=0,i,t,N;

N=atoi(argv[1]); //количество матриц N вводится в параметре командной строки

srand(time(NULL));

for(i=1;i<=N;i++){

CreateArray(a);

PrintArray(a);

t=MatrixSum1(a);

printf("\nSumm:%d\n ",t);

if(t>s){s=t;}}

printf("\nMaximum %d\n",s);

system("PAUSE");

return EXIT_SUCCESS;}

Результат выполнения программы (N=3):

0 72 91 65 7

59 23 13 17 77

55 16 74 40 85

18 56 19 89 63

20 87 49 89 35

Summ:468

30 92 77 90 68

40 72 79 7 91

16 46 34 78 0

9 7 57 33 60

5 31 2 71 84

Summ:284

47 22 56 36 57

19 27 1 5 75

25 67 52 35 73

90 0 34 9 78

99 27 48 33 59

Summ:442

Maximum 468


Федеральное агентство по образованию.

ГОУ ВПО Уральский Государственный Технический Университет – УПИ имени первого президента России Б. Н. Ельцина

Кафедра теплофизики и информатики в металлургии.

Дисциплина: Алгоритмизация и программирование.


Отчет

Лабораторная работа №6

" Строки"

Вариант 9.


Преподаватель: Степура А. А.

Студент гр. Мт-190503: Свиткин В. Г.


Екатеринбург, 2009


Цель: Изучение символьных и строковых переменных и способов их обработки в языке Си.

Задача: Задана строка, состоящая из символов. Символы объединяются в слова. Слова друг от друга отделяются одним или несколькими пробелами. В конце текста ставится точка. Текст содержит не более 255 символов. Выполнить ввод строки, используя функцию Gets(s) и обработку строки в соответствии со своим вариантом.

Вариант 9. Преобразовать строку так, чтобы все слова в ней стали идентификаторами, слова состоящие только из цифр - удалить.

Текст программы:

#include <cstdlib>

#include <iostream>

#include <string.h>

void ClearString(char string[255]){

int i;

for(i=0;i<255;i++){string[i]='\0';}}

int main(int argc, char *argv[]){

char str[255],s[255]="",t[255]="",c;bool r;

int i=0,j=0;

printf("Enter text>"); gets(s);

strcpy(str,"");

do{r=false;

do{c=s[i];i++;

if(c>'9'){r=true;}

if(c==' '||c=='.'||c=='\0'){

if(t[0]>'9'){if(r){

strcat(str,t);strcat(str," ");}

} t[j]='\0';

j=0;ClearString(t);break;}

else {t[j]=c;j++;}

}while(1);

}while(c!='.'&&c!='\0');

printf("Right identifiers:\n");

puts(str);

system("PAUSE");

return EXIT_SUCCESS;}

Исходные данные:

A1 1F Number 111 b 123c5 fff t.

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

Enter text> A1 1F Number 111 b 123c5 fff t.

Right identifiers:

A1 Number b fff t





© 2010 Интернет База Рефератов