Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Programmirovanie_na_c.pdf
Скачиваний:
128
Добавлен:
06.02.2015
Размер:
665 Кб
Скачать

3.2. Примеры программ для лабораторной работы № 2

Пример 38. Написать программу для вычисления функции F, используя условный оператор:

 

ì

cos (5x

2

+ 2)

 

 

 

 

 

 

 

ï y =

 

,

 

z = 3 8x + 3,

x ³ 3

 

 

 

3x3

 

F = y 2 + z 2

ï

 

 

 

 

 

 

 

 

 

í

 

e(3x-16)

 

 

 

 

 

 

 

ï y =

 

 

 

, z = 3x2+ 4x ,

x < 3

 

 

 

 

 

 

 

 

 

ï

3 (x + 3)2 (x - 5)2

 

 

 

 

 

 

î

 

 

 

 

 

#include <stdio.h> #include <conio.h> #include <math.h> void main()

{

float y,z,f; int x;

printf("vvedite x="); scanf("%d",&x);

if (x>=3)

{

y=cos(5*x*x+2)/sqrt(3*x*x*x);

z=pow(8*x+3,1/3);

}

else

{

y=exp(3*x-16)/pow((x+3)*(x+3)*(x-5)*(x-5),1/3); z=3*pow(x,2+4*x);

}

f=y*y+z*z;

printf("F=%.3f\nx=%d\ny=%.3f \nz=%.3f",f,x,y,z); getch();

}

78

Пример 39. Написать программу соответствия между числом и текущим цветом (для процедуры textcolor (color)). «Color» может принимать значение 0…7 из Задания № 5 (0 – черный, 1 – голубой, 2 – зеленый, 3 – васильковый, 4 – красный, 5 – фиолетовый, 6 – коричневый, 7 – светло-серый), либо

8

– темносерый

13

– сиреневый

9

– светло-голубой

14

– желтый

10

-салатовый

15

– белый

11

– алый

 

 

#include <stdio.h> #include <conio.h> #include <math.h> void main()

{

int x; printf("vvedite x:"); scanf("%d",&x); switch(x)

{

case 0:printf("black");break; case 1:printf("blue");break; case 2:printf("green");break;

case 3:printf("cornflower-blue");break; case 4:printf("red");break;

case 5:printf("purple");break; case 6:printf("brown");break;

case 7:printf("light grey");break; case 8:printf("dark grey");break; case 9:printf("light blue");break; case 10:printf("salad");break; case 11:printf("scarlet");break; case 12:printf("orange");break; case 13:printf("liliac");break; case 14:printf("yellow");break; case 15:printf("white");break; default:printf("incorrect number");

}

getch();

}

79

Пример 40. Вычислить факториал числа n.

#include <iostream.h>

void

main (void)

{

i, n;

int

float

fact = 1;

cout << “введите число, факториал которого вычислить:”;

cin >> n;

for ( i = 1; i <= n; i++) fact = fact*i;

cout <<n<<”!= “ << fact;

}

Пример 41. Домножить все элементы массива на квадрат его

наименьшего элемента. Вывести измененный массив.

#include <iostream.h> #include <math.h> #include <iomanip.h> void main (void)

{

int i, n, a[20], min;

cout << ”введите количество чисел в массиве (<20) ”; cin >> n;

for (i=0; i<n; i++)

{

cout << “введите ” << i << “ элемент массива:”; cin >> a[i];

}

min = a[0];

for (i=0; i<n; i++)

if (a[i] < min) min = a[i]; for (i=0; i<n; i++)

{

a[i] = a[i]*pow(min,2); cout << setw(8) << a[i];

}

}

80

Пример 42. Дана последовательность из n целых чисел. Найти количество элементов этой последовательности, кратных числу K1 и не

кратных числу K2.

#include <iostream.h> #include <conio.h> #include <math.h> #include <stdio.h> void main()

{

int n,x,s1,s2,i,k1,k2; cout<<"vvedite n:"; cin>>n; printf("vvedite k1:"); scanf("%d",&k1); printf("vvedite k2:"); scanf("%d",&k2);

cout<<"vvedite elementi: \n"; for(s1=0,s2=0,i=1;i<(n+1);i++)

{

scanf("%d",&x); if(x%k1==0) s1++; if(x%k2!=0) s2++;

}

printf("kol-vo kratnix k1=%d \nkol-vo ne kratnix k2=%d",s1,s2);

getch();

}

Пример 43. Дана последовательность целых чисел, за которой следует 0. Найти количество элементов этой последовательности, кратных

ее первому элементу.

#include <iostream.h> #include <conio.h> #include <math.h> #include <stdio.h> void main()

{

int a,x,k;

printf("vvedite 4isla posledovatelnosti\n"); scanf("%d",&a);

if (a!=0)

81

{

k=1; do

{

scanf("%d",&x); if(x%a!=0) k++;

}

while (x!=0); --k;

printf("kol-vo kratnix 1-my 4leny noclegovatelnosti=%d",k);

}

else

{

printf(“v posledovatelnosti 1 4len:Hevozmozhno proizvesti racc4et”);

}

getch();

}

Пример 44. B группе учатся n студентов. Вводя по 5 оценок каждого студента, подсчитать количество студентов, не имеющих

оценки 2 и 3.

#include <iostream.h> #include <iomanip.h> #include <conio.h> void main ( void )

{

int n,kol=0,i,j,ch;/*n-количество студентовi, j-параметры циклов,kolколичество студентов на 4 и 5,ch-счетчик предметов*/

int

k = 5 ;

//

5 предметов

int

a[30][5] ;

//

матрица оценок

cout<<"Kolichestvo studentov v gruppe:"; cin>>n;

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

{

for (j=1;j<=5;j++)

{

cout<<"Vvedite"<<j<<"ocenku"<<i<<"studenta:"; cin>>a[i][j] ;

82

}

cout<<endl;

}

/*вывод матрицы в виде таблицы*/ for (i=1; i<=n;i++)

{

for(j=1;j<=5;j++)

cout<<setw(5)<<a[i][j];/* конец цикла по j*/ cout << endl; // конец цикла по i

}

for (i=1;i<=n;i++) /*i-счетчик тудентов, j- счетчик предметов */

{

ch=0;//счетчик оценок для каждого студента for (j=1;j<=5;j++)

if (a[i][j]>3)ch++; if (ch==5)kol++;

}

cout<<"v gruppe"<<kol<<"studentov uchit na 4 i 5 "; getch();

}

При вводе матрицы можно сразу позиционировать курсор в нужное место экрана. Результат работы программы:

83

Пример 45. Заполнить квадратную матрицу порядка 3 с клавиатуры с использованием позиционирования курсора.

#include <iostream.h> #include <conio.h> void main(void)

{

int a[10][10], i, j, n, m; cout<<"strok= ";cin>>n;

cout<<"stolbcov= ";cin>>m; cout<<endl<<endl;

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

{

for (j=1; j<=m;j++)

{

gotoxy(wherex( )+5*j, wherey( ) - 1); cin >> a[i][j];

}

cout <<" \n"; // либо cout<<endl;

}

}

84

Пример 46. Расчитать матрицу C как произведение матриц A и B, при этом значения матриц задать в теле программы:

 

й1щ

й1

0

1

щ

A =

к

ъ

; B =

к

0 1

0

ъ

;

к

2ъ

к

ъ

 

к

3ъ

 

к

1

0

1

ъ

 

 

л

ы

 

л

 

 

 

ы

 

Код программы:

#include <iostream.h> #include <math.h> #include <iomanip.h> #include <conio.h> void main(void)

{

//Ввод значений матриц A и B int a[3][1]={{1},{2},{3}};

int b[3][3]={{1,0,1},{0,1,0},{1,0,1}}; int c[3][1];

int k=0;int i=0; int j=0; //Вывод матрицы A на экран cout<<"matrica A=\n";

cout<<"\n";

for(int j=0,i=0;i<3;i++)

{

for(j=0;j<1;j++)cout<<a[i][j]<<" "; cout<<"\n\n";

cout<<"\n"; cout<<endl; } //Вывод матрицы B на экран

cout<<"matrica B=\n"; cout<<"\n";

for(int j=0,i=0;i<3;i++)

{

for(j=0;j<3;j++)cout<<b[i][j]<<" "; cout<<"\n\n";

cout<<"\n"; cout<<endl; } //Вывод матрицы С на экран

cout<<"rezult C="<<"\n";

for(int i=0,j=0,ik=0,jk=0;i<3;i++)

{

for(jk=0;jk<1;jk++) { for(j=0;j<3;j++)

85

{

k+=b[i][j]*a[j][jk];}

c[i][jk]=k;

cout<<c[i][jk]<<"\n\n";

k=0;

}

}

cout<<"\n";

getch();

}

Блок-схема для данной программы имеет вид:

86

начало

int a[3][1, int b[3] [3],int c[3][1];int k=0;int i=0; int j=0;

Вывод

 

 

matrica A=

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

int

 

 

 

j=0,i=0;i

 

 

 

<3;i++

 

 

 

 

Вывод

matrica B=

 

j=0; j<1;

 

 

 

j++

int

 

 

 

 

 

 

j=0,i=0;i

 

 

Вывод

<3;i++

 

 

 

 

 

a[i][j]

 

 

 

 

j=0; j<3;

 

 

 

j++

 

 

 

Вывод

 

 

 

b[i][j]

 

 

 

rezult C=

Вывод

 

 

 

inti=0,j=0,ik

 

 

 

=0,jk=0;i<3;i

 

jk=0;

 

++

 

a

k=0

b

jk<1;jk+

+

 

Вывод

 

k+=b[i][j]*a[j]

 

c[i][j]

 

[jk]

 

 

 

j=0;

b

a

 

 

 

 

j<3;j++

 

 

 

 

getch ()

 

 

k+=b[i]

 

 

 

[j]*a[j][jk]

конец

 

 

 

 

 

87

Пример 47. Ввести матрицы B и A с клавиатуры. Расчитать

матрицу C=A+BBT.

#include <stdio.h> #include <conio.h> #include <iostream.h> #include <iomanip.h> void main(void)

{// Определение переменных

int a[3][3],b[3][3],c[3][3],d[3] [3],i,j,m,n,m1,n1,f,l,max;

cout<<"vvedite pa3Mep Matrici A:"<<endl; cin>>n;

cin>>m;

cout<<"vvedite pa3Mep Matrici B:"<<endl; cin>>n1;

cin>>m1;

// проверка размерности матриц if (n1>=m1)

{

max=n1;

}

else

{

max=m1;

}

if ((n==m)&(n==max))

{ // Заполнение матрицы А

cout<<"vvedite elementi Matrici A:"<<endl; for (i=1;i<=n;i++)

{

for(j=1;j<=m;j++)

cin>>a[i][j];

}

// Заполнение матрицы B

cout<<"vvedite elementi Matrici B:"<<endl; for (i=1;i<=n1;i++)

{

for(j=1;j<=m1;j++)

cin>>b[i][j];

}

// Транспонирование матрицы В

88

for (i=1;i<=n1;i++)

{

for(j=1;j<=m1;j++)

{d[j][i]=b[i][j];}

}

// Умножение матриц В на В транспонированную for (i=1;i<=n1;i++)

{

for(j=1;j<=n1;j++)

{

f=0;

for (l=1;l<=m1;l++)

{

f=f+b[i][l]*d[l][j];

}

c[i][j]=f;

}

}

// Сложение матриц for (i=1;i<=n1;i++)

{

for(j=1;j<=n1;j++)

{

c[i][j]=a[i][j]+c[i][j];

}

}

// Вывод матрицы A на экран printf("Matrica A: \n"); for (i=1;i<=n;i++)

{

for(j=1;j<=m;j++)

cout<<setw(m)<<a[i][j];

cout<<endl;

}

// Вывод матрицы B на экран printf("Matrica B: \n"); for (i=1;i<=n1;i++)

{

for(j=1;j<=m1;j++)

cout<<setw(m)<<b[i][j];

cout<<endl;

89

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]