
- •Мiнiстерство аграрної політики україни миколаївський державний аграрний університет методичні вказівки
- •Миколаїв –2003
- •Введение
- •1. Понятие переменной
- •2. Арифметические операции
- •3. Логические операции
- •4. Основные операторы (ключевые слова)
- •4.1 Арифметические операторы.
- •4.2 Оператор условия if.
- •4.3. Оператор цикла for.
- •4.4. Оператор безусловного перехода goto.
- •4.5. Оператор цикла while.
- •If(условие)
- •4.6. Ключевые слова break и continue.
- •5. Основные правила составления программ.
- •5.1. Подключение необходимых библиотек языка Си.
- •5.2. Ключевое слово main().
- •Void main ()
- •5.3. Описание переменных.
- •5.4. Реализация основных математических функции в языке Си.
- •6. Массивы
- •6.1. Описание массивов.
- •6.2. Конструкция #define для объявления размерности массивов.
- •Void main()
- •6.3. Инициализация массивов при объявлении.
- •7. Функция printf().
- •7.1. Вывод на экран заданного текста.
- •7.2. Вывод на экран значений переменных.
- •8. Примеры программ.
- •8.1. Печать координат вектора превышающих заданный порог.
- •8.2. Умножение двух прямоугольных матриц.
- •Void main()
- •8.3. Разложение числа на простые множители.
- •Void main()
- •8.4. Решение физической задачи.
- •Void main()
- •9. Работа с компилятором языка си
- •9.1. Подготовка к запуску компилятора.
- •9.2. Набор текста программы и его редактирование.
- •9.3. Компиляция и отладка программы.
- •9.4. Запуск программы на исполнение.
- •10. Ввод информации в программу с экрана
- •10.1. Функция scanf().
- •Int day, year;
- •10.2. Примеры программ, использующих ввод данных с экрана. Ввод вектора с экрана.
- •Void main()
- •Ввод даты с экрана.
- •Void main()
- •Доработка программы решения физической задачи из раздела 8.4.
- •Void main()
- •11. Управление работой программы с клавиатуры.
- •11.1. Предпочтительные функции для работы с клавиатурой.
- •11.2. Программа печати кода нажатой клавиши.
- •Void main()
- •12. Создание пользовательских функций.
- •12.1. Общие правила написания пользовательских функций.
- •12.2. Пример использования пользовательских функций.
- •Void main()
- •13. Представление о графических функциях языка с.
- •13.1. Подготовка графического режима.
- •Initgraph(&graphdriver, &graphmode," ");
- •13.2. Наиболее употребляемые графические функции.
- •13.3. Примеры программ использующих графический режим. Разноцветные концентрические кольца.
- •Void main()
- •Initgraph(&graphdriver,&graphmode," ");
- •Управления движением курсора.
- •Void cursor(int dh,int iocur,int jocur,int incur,int jncur);
- •Void main()
- •Initgraph(&graphdriver,&graphmode," ");
- •Void cursor(int dh, int iocur,int jocur,int incur,int jncur)
- •14. Упражнения для самостоятельной работы.
- •15. Задачи для самостоятельного составления программ
- •15.1. Не сложные задачи.
- •15.2. Задачи средней сложности.
- •15.3. Задачи повышенной сложности.
- •16. Разбиение материала на модули
- •Список литературы
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