
- •Основы программирования язык “с” Минск – 2005
- •§1 Введение в программирование
- •Void main()
- •Void main()
- •Void main()
- •2 Распечатать свою фамилию следующим образом
- •3. Распечатать прямоугольник следующим образом
- •1.1 Простые программы: печать стоки текста Понятие переменной.
- •Volatile while
- •1.2 Целый тип данных
- •1.3 Числа с плавающей точкой
- •Void main({
- •1.4 Символьный тип
- •Void main()
- •§2 Управляющий структуры
- •2.1 Структура выбора if (если) и if/else(если - иначе)
- •Void main()
- •Void main()
- •2.2 Структуры повторенийfor(цикл)
- •Void main()
- •Void main()
- •2.3 Структура повторения while (пока)
- •Void main()
- •Void main()
- •Void main(){
- •Void main()
- •Void main()
- •2.4 Структура многомерного выбора switch
- •Void main()
- •Void main()
- •2.5 Операторы continue и break
- •Void main()
- •Void main()
- •2.6 Контрольные вопросы:
- •§3 Функция
- •Int printf(“const char * string”,…); %[флаг][ширина][точность][модификатор типа] тип_формата
- •Int scanf(const char * format, ……); возвращаемое значение – число считанных полей
- •3.1 Определение функции:
- •3.2 Классы памяти.
- •3.3 Указатели
- •Void main()
- •Void fff(int,int,int*,int*,int*,double*);
- •Void main()
- •Void fff(int a,int b,int*p1,int*p2,int*p3,double*p4)
- •Генерация случайных чисел.
- •Void main()
- •Void main()
- •Void main()
- •Void main(){
- •Void main()
- •3.6 Переменные перечисляемого типа
- •Int rollDice();
- •Void main()
- •Int sum,myPoint;
- •Int rollDice(){
- •Int die1,die2,workSum;
- •Void main()
- •§4 Массивы
- •4.1 Одномерные массивы
- •Int array[10];
- •4.2 Примеры использования массивов
- •Void main()
- •Void main()
- •Void main()
- •Void main()
- •4.3 Сортировки массивов
- •Void main()
- •Void main()
- •Void main()
- •Void main(){
- •Int arr1[maxsize],arr2[maxsize],buf;
- •Void main()
- •4.4 Передача массивов функции
- •4.5 Двумерные массивы
- •Void main()
- •Int I,j,temp;
- •Void main()
- •4.6 Контрольные вопросы:
- •§5 Символьная строка
- •5.1 Объявление символьной строки
- •Void main()
- •Void main()
- •Int srav(char *,char *);
- •Void main()
- •Int srav(char *X,char *y)
- •Void main()
- •Void main()
- •Void main()
- •Void main()
- •Void main()
- •5.3 Массив строк
- •Void main()
- •Void main()
- •Void main()
- •§6 Динамическое распределение памяти
- •6.1 Функция malloc()
- •Void * malloc(unsigned size)
- •Void free(free *ptr)
- •Void main(){
- •Void main(){
- •Void vvod_mas(int*,int);
- •Void sort_vozr(int*,int);
- •Void main()
- •Vvod_mas(ptr1,n1);
- •Vvod_mas(ptr2,n2);
- •Void sort_vozr(int*X,int n)
- •Void vvod_mas(int*X,int n)
- •6.2 Функция сalloc()
- •Void * сalloc(unsigned num ,unsigned size)
- •6.3 Функция realloc()
- •Void * realloc(void *ptr ,unsigned size)
- •§7 Структура
- •7.1 Объявление структуры
- •Void main()
- •7.2 Объединения
- •§8 Файлы и потоки
- •8.1 Объявления файла
- •Int feof(file *);
- •8.2 Работа с текстовым файлом
- •Int fprintf(file *, const char format, …);
- •Void main()
- •Int account;
- •Int fputs(const char *, file *);
- •Int fscanf( file *, const char *format, …..);
- •Void main()
- •Void main()
- •Int account;
- •Void main()
- •Int fseek(file *,long ,int );
- •Void main()
- •Void main()
- •Void main()
- •Void show_file(file *k1)
- •Void dobav_file(file *k1)
- •Void fill_file(file *k1)
- •Создание файла произвольного доступа.
- •8.3 Работа с бинарным файлом
- •Void main()
- •Void main()
- •Void print_file(file *);
- •Void main(){
- •If(feof(k1)){
- •If(feof(k2)){
- •Void print_file(file *k){
- •8.4 Kонтрольные вопросы
- •Какие операции определены со строками?
4.4 Передача массивов функции
Прототип функции, которой передается массив
возвр _знач имя_функции (тип_данных *, const int);
Пример: Ввода и вывода одномерного целочисленного массива, с помощью функции
#include<stdio.h>
void vvod_mas(int *,const int);
void vivod_mas(int *,const int);
void main()
{
const int n=5,m=6;
int x[n],y[m];
vvod_mas(x,n);
vvod_mas(y,m);
printf("Содержание первого массива:\n");
vivod_mas(x,n);
printf("Содержание второго массива:\n");
vivod_mas(y,m);
}
void vvod_mas(int *p,const int k){
for(int i=0;i<k;i++){
printf("[%d]=",i);
scanf("%d",(p+i));
}
}
void vivod_mas(int *p,const int k){
for(int i=0;i<k;i++)
printf("[%d]=%d\n",i,*(p+i));
}
Задача :
Написать следующие функции для одномерного массива: 1. ввод массива, 2. вывод массива, 3 нахождения и максимального элемента и его место, 4. нахождения и минимального элемента и его место 5. сортировка массива по убыванию 6. сортировка массива по возрастанию.
Переделать задачу один, так чтобы в программе мы использовали оператор switch, если мы введем 1, то показывает максимальный элемент и его место
2, то показывает минимальный элемент и его место
3, то сортирует массив по убыванию
4, то сортирует массив по возрастанию
5, то работа программы завершена
4.5 Двумерные массивы
a00 a01 a02 a03 матрица А размерности 3х4
a10 a11 a12 a13
a20 a21 a22 a23
Для того, чтобы ввести и вывести двумерный массив по строкам необходимо
const int n=3,m=4;
int x[n][m],i,j;
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
{
printf("x[%d][%d]=",i,j);
scanf("%d",&x[i][j]);
}
}
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
printf("x[%d][%d]=%d\n",i,j,x[i][j]);
}
Для того, чтобы ввести и вывести двумерный массив по столбцам, а вывести по строкам необходимо
const int n=3,m=4;
int x[n][m],i,j;
for(j=0;j<m;j++)
{
for(i=0;i<n;i++)
{
printf("x[%d][%d]=",i,j);
scanf("%d",&x[i][j]);
}
}
for(i=0;i<n;i++)
{
for(j=0;j<m;j++){
printf("%d\t",x[i][j]); }
printf(“\n”);
}
Задачи:
Посчитать сумму всех элементов 2-го массива
Найти max-ый и min-ый элементы массива и их места.
Сумму элементов выше диагонали, место мах выше диагонали и место min ниже диагонали.
Сумма столбцов
Сумма строк
const int n=3,m=4;
int x[n][m],i,j,y[n];
for(i=0;i<n;i++){
for(j=0;j<m;j++){
printf("x[%d][%d]=",i,j);
scanf("%d",&x[i][j]);
}
}
for(i=0;i<n;i++){
y[i]=0;
for(j=0;j<m;j++)
y[i]=y[i]+x[i][j];
}
Сортировка строк
const int n=3,m=4;
int x[n][m],i,j,y[n],buf,buf1;
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
{
printf("x[%d][%d]=",i,j);
scanf("%d",&x[i][j]);
}
}
for(i=0;i<n;i++){
y[i]=0;
for(j=0;j<m;j++)
y[i]=y[i]+x[i][j];
}
for(int t=0;t<n;t++){
for( i=0;i<n-1;i++){
if(y[i]>y[i+1]){
buf1=y[i];
y[i]=y[i+1];
y[i+1]=buf1;
for(j=0;j<m;j++){
buf=x[i][j];
x[i][j]=x[i+1][j];
x[i+1][j]=buf;
}
}
}
}
puts("");
for(i=0;i<n;i++){
for(j=0;j<m;j++)
printf("x[%d][%d]=%d\n",i,j,x[i][j]);
}
Сортировка столбцов
Рассортировка всех элементов матрицы
#include<stdio.h>