- •М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