- •1.Алгоритм. Основные свойства алгоритмов. Описание алгоритмов
- •2. Понятие о структурном программировании
- •3. Структура программы на языке c. Синтаксис и семантика. Лексемы
- •4. Порядок выполнения программ на языке c
- •5. Тип данных как совокупность значений и действий. Внутреннее представление чисел в эвм. Простые типы языка c
- •6. Операции и выражения в языке c
- •7. Приоритеты операций в языке c
- •8. Элементарный ввод-вывод в языке c. Спецификации преобразования
- •9. Условный операторы.
- •10. Вложенные условные операторы
- •11. Оператор switch
- •12. Оператор цикла while
- •13. Оператор цикла do-while
- •14. Оператор цикла for
- •15. Вложенные циклы
- •16. Одномерный массив.
- •17. Двумерные массивы
- •18. Типовые действия с массивами
- •19. Сортировка элементов одномерного массива
- •20. Указатель. Адресная арифметика
- •21. Операции над указателями
- •22. Связь одномерных массивов с указателями
- •23. Связь двумерных массивов с указателями
- •24. Массивы указателей !!!!!
- •25. Строки символов
- •26. Использование указателей для адресации строк символов
- •27. Функции. Объявление и описание
- •28. Функции без аргументов. Функции с аргументами. Оператор return
- •29. Использование указателей в качестве параметров функций
- •31. Причины появления ошибок в программах
- •32. Тесты. Отладка программ
- •33. Проверка программ «вручную». Анализ программ
- •34. Проверка программ «вручную». Прокрутка
15. Вложенные циклы
for( выражение1; выражение2; выражение3 )
for( выражение4; выражение5; выражение6 )
оператор;
Одна из проблем, связанных с вложенными циклами — организация досрочного выхода из них. Для этого есть оператор досрочного завершения цикла(break).
Существует возможность организовать цикл внутри тела другого цикла. Такой цикл будет называться вложенным циклом. Вложенный цикл по отношению к циклу в тело которого он вложен будет именоваться внутренним циклом, и наоборот цикл в теле которого существует вложенный цикл будет именоваться внешним по отношению к вложенному. Внутри вложенного цикла в свою очередь может быть вложен еще один цикл, образуя следующий уровень вложенности и так далее. Количество уровней вложенности как правило не ограничивается.
Пример(Ввод b вывод матрицы)
for(i=0;i<n;i++) //ввод
for(j=0;j<n;j++)
{
printf("Введите массив a[%d][%d]",i,j);
scanf("%d",&a[i][j]);
}
for(i=0;i<n;i++) //вывод
{
for(j=0;j<n;j++)
printf("%d ",a[i][j]);
printf("\n");
}
16. Одномерный массив.
Массив - набор объектов одинакового типа, имеющих одно имя, доступ к которым осуществляется по индексам. Количество индексов определяет размерность.
Размерность массива — количество индексов, которые необходимо задать одновременно для доступа к элементу массива.
задается константой вот так:
int a[5];
Элементы массива запоминаются в памяти последовательно.
a[0]
a[1]
. . .
a[4]
Свойства одномерного массива:
-один и тот же тип
-все элементы в памяти располагаются друг за другом
-индекс первого элемента - 0
-имя массива определяет адрес начала массива (адрес первого элемента - const).
Реализация ввода элементов массива:
int a[5], i;
for( i=0; i<5; i++ )
{
printf( "\n эл-т %d: ", i );
scanf( "%d", &a[i] );
}
Инициализация массива при описании:
int x[4] = { 5, 2, 1, 8 };
// размерность можно не указывать:
int x[ ] = { 5, 2, 1, 8, 9, 75 };
int A[4] = { 2 }; // последние три элементы равны 0
17. Двумерные массивы
Имя двумерного массива является указателем константы на массив указателей констант.
int x[3][4]
С элементами двумерного массива можно работать с помощью индексов
int [i][j]
Первый индекс – номер строки, второй индекс – номер столбца. Количество байт памяти, которое необходимо для хранения массива, вычисляется по формуле
Колич. байт = <размер типа данных>*<колич. строк>*<колич. столбцов>
В памяти компьютера массив располагается непрерывно по строкам, т.е. а[0][0], a[0][1], a[0][2], a[1][0].
Элементы многомерного массива располагаются таким образом, что значение последнего индекса изменяется в первую очередь.
#include <stdio.h>
const int n = 10;
int main(void)
{
int i, j, a[n][n];
for ( i = 0; i < n; i ++ )
for ( j = 0; j < n; j ++ )
{ // цикл по всем элементам
printf("Введите a[%d][%d] ", i ); // подсказка для ввода A[i]
scanf ("%d", &a[i][j]); // ввод A[i]
}
for ( i = 0; i < n; i ++ )
{
for ( j = 0; j < n; j ++ )
printf(“%d”, a[i][j])
printf(“\n”);
}
}