22
.DOC
Томский политехнический университет
Кафедра КМС
Отчёт
По лабораторным работам по информатике
Выполнил студент группы 4А12: Султанов А. В.
Проверил преподаватель: Коротков В. C.
Томск 2001
Лабораторная работа №1
“ Математические выражения ”
Задание:
Даны переменные X,Y. Вычислить следующее выражение.
Программа:
#include<stdio.h>
#include<math.h>
main()
{
float a,x,y;
clrscr();
puts("Программа для вычисления сложного выражения");
printf("Введите X = ");
scanf("%f",&x);
printf("Введите Y = ");
scanf("%f",&y);
a=(sqrt(abs(x-1))-pow(abs(y),1/3))/(1+pow(x,2)/2+pow(y,2)/4);
printf("Результат вычисления равен %.3f",a);
getch();
}
Результат:
Программа для вычисления сложного выражения
Введите X = 8
Введите Y= 3
Результат вычисления равен 0.047
Алгоритм программы:
Лабораторная работа №2
Задание: Исходные данные x, y, z. Вычислить m
Программа:
#include<stdio.h>
main()
{
float x,y,z,m;
clrscr();
printf("Введите x=");
scanf("%f",&x);
printf("Введите y=");
scanf("%f",&y);
printf("Введите z=");
scanf("%f",&z);
if ((x>y)&&(x>z)&&(y<z))
m=(x/y)+5;
if ((x>y)&&(x>z)&&(z<y))
m=(x/z)+5;
if ((y>x)&&(y>z)&&(x<z))
m=(y/x)+5;
if ((y>x)&&(y>z)&&(z<x))
m=(y/z)+5;
if ((z>x)&&(z>y)&&(x<y))
m=(z/x)+5;
if ((y>x)&& (y>z)&&(z<x))
m=(y/z)+5;
if ((x==y)&&(y==z))
m=6;
if ((x==y)&&(x>z))
m=(x/z)+5;
if ((x==y)&&(x<z))
m=(z/x)+5;
if ((x==z)&&(y<x))
m=(x/y)+5;
if ((x==z)&&(x<y))
m=(y/x)+5;
if ((y==z)&&(y<x))
m=(x/y)+5;
if ((y==z)&&(x<y))
m=(y/x)+5;
printf("Результат равен %.2f",m);
getch();
}
Результат:
Введите x = 9
Введите y = 3
Введите z = 7
Результат равен 8
Алгоритм программы:
Лабораторная работа №3
“Разветвляющие алгоритмы”
Задание: Дан ряд чисел Y1….Yn. Найти сумму отрицательных и нечётных чисел.
Программа:
#include<stdio.h>
#include<math.h>
main()
{
int i,n,a[100],s;
clrscr();
puts("Введите количество элементов в массиве");
scanf("%d",&n);
puts("Введите элементы в массиве");
s=0;
for(i=1;i<=n;i++)
{
scanf("%d",&a[i]);
if ((a[i]%2!=0) if (a[i]<0) s=s+a[i];
}
printf(" Сумма отрицательных и нечётных чисел в массиве = %d ",s);
getch();
}
Результат:
Введите количество элементов в массиве
5
Введите элементы в массиве
-3
4
-7
1
-2
Сумма отрицательных и нечётных чисел в массиве = -10
Алгоритм программы:
i =1
Да
Нет
i=i+1
i<=n
Лабораторная работа № 4.
“Типы данных”
Задание: Дана матрица nxm. Заменить максимальный элемент минимальным.
Программа:
#include<stdio.h>
#include<math.h>
#include<stdlib.h>
main()
{
int n,m,i,j,max,min,i2[100],j2[100];
int a[10][10],m1,k;
clrscr();
randomize();
puts("Введите число строк :");
scanf("%d",&n);
puts("Введите число столбцов");
scanf("%d",&m);
for(i=1;i<=n;i++)
for (j=1;j<=m;j++)
a[i][j]=random(10)-5;
for (i=1;i<=n;i++)
{
puts(" ");
for (j=1;j<=m;j++)
printf("%d ",a[i][j]);
}
min=a[1][1];
max=a[1][1];
for(i=1;i<=n;i++)
{
puts("");
for(j=1;j<=m;j++)
{
if (a[i][j]>max) max=a[i][j];
if (a[i][j]<min) min=a[i][j];
}
}
printf("\n Максимальный элемент в матрице = %d\n",max);
printf("\n Минимальный элемент в матрице = %d\n",min);
m1=0;
/* Поиск и запоминание индексов максимальных элементов в матрице */
/* Результат заносится в массивы i2,j2: */
for (i=1;i<=n;i++)
for (j=1;j<=m;j++)
if (a[i][j]==max)
{
m1++;
i2[m1]=i;
j2[m1]=j;
}
/* Замена минимальных элементов на максимальные */
for (i=1;i<=n;i++)
for (j=1;j<=m;j++)
if (a[i][j]==min) a[i][j]=max;
/* Находятся элементы с индексами из массивов i2,j2, и заменяются на */ /* минимальные элементы */
for (i=1;i<=n;i++)
for(j=1;j<=m;j++)
for (k=1;k<=m1;k++)
if ((i==i2[k])&&(j==j2[k])) a[i][j]=min;
puts(" Mатрица после преобразования: ")
for (i=1;i<=n;i++)
{
puts("");
for (j=1;j<=m;j++)
printf("%d ",a[i][j]);
}
getch();
}
Результат работы программы:
Введите размерность матрицы: 4
-1 |
3 |
3 |
2 |
-2 |
-1 |
1 |
-1 |
-1 |
-1 |
4 |
-4 |
4 |
1 |
-5 |
-5 |
Максимальный элемент в матрице = 4
Минимальный элемент в матрице = -5
Матрица после преобразования:
-1 |
3 |
3 |
2 |
-2 |
-1 |
1 |
-1 |
-1 |
-1 |
-5 |
-4 |
-5 |
1 |
4 |
4 |
Алгоритм программы:
Н а
i = i+1
i<=n
i =1
j =1 i =1
j =1
j = j+1
j <=n
i = i+1
i <=n
i =1
j =1
j = j + 1
j<=n
j = j+1 i = i + 1
j<=n i<=n
i = 1
j = j+1
j<=n
i = i+1
j = 1 i<=n
i =1
j = 1
j =j+1
j<=n k= 1
i = i+1
i<=n
i = 1 k=k+1
k<=m1
j = 1 j=j+1
j<=n
i=i+1
i<=n
i = 1
j =1
j = j+1
j<=n
i = i+1
i<=n