Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
met_cv.doc
Скачиваний:
12
Добавлен:
04.06.2015
Размер:
973.31 Кб
Скачать

8. Примеры программ.

8.1. Печать координат вектора превышающих заданный порог.

#include <stdio.h>

#define N 5

main()

{ int i;

float c;

float a[N]={17.3,8.45,10.0,15.23,5.01};

c=10;

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

if(a[i] >= c)

printf("a[%d]=%.3f ",i,a[i]);

printf("\n");

}

При заданных значениях переменных программа выводит на экран строку:

a[0]=17.300 a[2]=10.000 a[3]=15.230 .

Убедитесь в этом, расписав работу программы по тактам и запустив ее на счет после компиляции.

8.2. Умножение двух прямоугольных матриц.

Напомним, что операция умножения вводится в математике для двух прямоугольных матриц, в которых количество столбцов первой матрицы совпадает с количеством строк второй матрицы, количество строк результирующей матрицы равно количеству строк первой матрицы, количество столбцов – количеству столбцов второй матрицы:

А(m х n)*B(n x k)=C(m x k).

Элементы матрицы C вычисляются по следующей формуле:

.

#include <stdio.h>

#define M 3

#define N 2

#define K 4

Void main()

{ int i,j,l;

int a[M][N]={{1,2},{3,4},{5,6}};

int b[N][K]={{7,8,9,10},{11,12,13,14}};

static int c[M][K];

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

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

{ for(l=0;l<N;l++)

c[i][j]+=a[i][l]*b[l][j];

printf("c[%d][%d]=%3d ",i,j,c[i][j]);

}

printf("\n");

}

}

При заданных значениях переменных программа выводит на экран:

c[0][0]= 29 c[0][1]= 32 c[0][2]= 35 c[0][3]= 38

c[1][0]= 65 c[1][1]= 72 c[1][2]= 79 c[1][3]= 86

c[2][0]=101 c[2][1]=112 c[2][2]=123 c[2][3]=134.

8.3. Разложение числа на простые множители.

#include <stdio.h>

#define N 1000

#define M 50

Void main()

{ unsigned int p[N]={2,3,5,7,11,13,17,19,23,...};

int i,k;

unsigned int pn[M], ms[M];

char mr, prd;

unsigned long n;

n=1617;

if(n/2 > p[N-1])

{ printf("Необходимо увеличить массив простых чисел!");

return;

}

k=0;

printf("%li=",n);

for(i=0; i<N && n>=p[i]; i++)

{ mr=prd=0;

while(n%p[i]==0)

{ n/=p[i];

mr++;

prd=1;

}

if(prd==1)

{ pn[k]=p[i];

ms[k]=mr;

k++;

}

}

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

printf("%d(%d)",pn[i],ms[i]);

}

При заданных значениях переменных программа выводит на экран:

1617=3(1)7(2)11(1), что эквивалентно разложению

1617=3*72*11.

Массив простых чисел p[N] должен быть заполнен до необходимого объема. Ключевое слово return завершает программу.

8.4. Решение физической задачи.

Задача. Температура молока в бидонах после содержания их на открытом воздухе в течении t часов выражается следующей формулой:

где - температура окружающего воздуха в , - начальная температура молока в , - площадь поверхности бидона в м2, - площадь поверхности бидона в м3, =0.00448 м/ч – постоянный коэффициент. Написать программу вычисления температуры молока после хранения, обеспечивающую выдачу результатов в виде таблицы с пояснительным текстом для от 0 до с шагом .

До начала написания программы необходимо дать имена переменным, которые будут использоваться в программе. Настоятельно рекомендуется по возможности сохранить обозначения принятые в формулировке задачи. Для обозначений в задаче, которые не могут служить именами переменных в языке Си (см. определение имени переменной из раздела 1), желательно дать имена, связанные с исходными обозначениями. Для рассматриваемой задачи недопустимыми именами являются: , , , , (использование не латинских букв и скобок). Примем для них следующие, разрешенные имена: Tm, Tv, Tm0, tmax, dt. Поскольку все эти величины могут быть не целыми, объявим их как float. Для циклического вычисления температуры удобнее всего воспользоваться оператором цикла for.

#include <stdio.h> // библиотека функций ввода-вывода

#include <math.h> // библиотека математических функций

#define k 0.0048

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