48258 (Программирование на языке Си++)

2016-07-28СтудИзба

Описание файла

Документ из архива "Программирование на языке Си++", который расположен в категории "". Всё это находится в предмете "информатика" из 1 семестр, которые можно найти в файловом архиве . Не смотря на прямую связь этого архива с , его также можно найти и в других разделах. Архив можно найти в разделе "лабораторные работы", в предмете "информатика, программирование" в общих файлах.

Онлайн просмотр документа "48258"

Текст из документа "48258"

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

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

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

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

Отчет

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

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

Вариант 9.

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

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

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

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

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

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

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

, при а=100, b=0.001

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

#include

#include

#include

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

#include

#include

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++

printf("m++

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=5,m=9

n++>m=0

n=6,m=9

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

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

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

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

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

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

Отчет

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

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

Вариант 9.

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

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

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

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

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

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

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

#include

#include

#include

#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;

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

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

Вариант 9

Функция:

Диапазон x:

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

n=3

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

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

#include

#include

#include

#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

#include

#include

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

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

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

for(i=0;i

if(a[i]==x){

for(j=i;j

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

size--;break;}}

for(i=0;i

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

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

for(i=0;i

if((i+k)

printf("Result:\n");

for(i=0;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

#include

#include

#include

#define SIZE 5

static int a[SIZE][SIZE];

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

int i,j;

for(i=0;i

for(j=0;j

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

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

int i,j;

for(i=0;i

for(j=0;j

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

printf("\n");}}

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

int i,j,s=0;

for(i=1;i

for(j=0;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

#include

#include

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

Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5137
Авторов
на СтудИзбе
440
Средний доход
с одного платного файла
Обучение Подробнее