- •11. Кэш память.
- •12. Автоматическое и динамическое распределение памяти. Плюсы и минусы каждого из видов распределения памяти.
- •19. Сравнение Автоматической и динамической переменных.
- •20. Сравните работу с автоматическим массивом и с динамическимю
- •21.Принцип работы malloc и free. Как можно проверить смогли ли выделить память.
- •23. Способы передачи двухмерного массива в функцию. С примерами.
- •24. Архитектура Фон Неймана. Основные элементы эвм, принципы.
- •25. Архитектура Фон-неймана. Основные элементы эвм. Косвенная адресация операндов. Понятие операнда.
- •26. Архитектура Фон Неймана. Узкое горло арх. Фон Неймана. Способы решения.
- •31. Бса. Цикл и Ветвление. Как можно заменить цикл с предусловием равносильным алгоритмом на операциях ветвления. Пример на бса и псевдокоде и си.
31. Бса. Цикл и Ветвление. Как можно заменить цикл с предусловием равносильным алгоритмом на операциях ветвления. Пример на бса и псевдокоде и си.
Б
начало/конец
процесс
ввод/вывод
услов.переход
предопределенные действия
СА – графическое представление алгоритма в виде связанных между собой блоков.
Ц иклы – алгоритм, если определенная последовательность действий выполняется несколько раз в зависимости от условия. а) цикл с предусловием (ТЦ (тело цикла) в принципе может не выполнятся. б) с постусловием (ТЦ выполнится х/б один раз) в) безусловный (условие выхода не зависит от ТЦ) г) С итератором ( когда известно сколько раз будет выполняться тело цикла)
i=k; i<n; i++
ТЦ
В етвления – алгоритм, который в зависимости от условий реализуется по одному из направлений.
- +
+/-
Пример замены ветвления на цикл с предусловием (с начало ветвление, затем с циклом)
алг Сумма дано Х, sum надо sum нач ввод Х sum=0 1: если Х!=0 то sum= sum+х х=х-1 goto 1 (возврат на начало условия) вывод sum кон
|
void main() { int x, sum=0; scanf("%i", &x);
l1:if (x!=0) { sum=sum+x; x--; goto l1; } printf("%i", sum); }
|
алг Сумма дано Х, sum надо sum нач ввод Х sum=0 пока Х!=0 нц sum= sum+х х=х-1 кц вывод sum кон
|
void main()
{ int x, sum=0; scanf("%i", &x);
while (x!=0) { sum=sum+x; x--; } printf("%i", sum); }
|
32. Операции в СИ. Классификация операций. Описание операций. Примеры использования. Логические и логические побитовые операции – отличия. Как в СИ представляется истина и ложь. Бинарные операции: - Арифметические операции (+, -, * , / , %) - Операции отношения(<, >, <=, >=, ==, !=) - Операции присваивания ( = ) - Логические связки (&& (и) . || (или)) - Побитовые логические операции (& , | ) Унарные операции: - Арифметическое отрицание ( унарный минус «-») -27, -63 - Логическое отрицание (!) - !a т.е. читаем как «не а» - Побитовое логическое отрицание - Операции увеличения и уменьшения - Операция приведения к типу В логических операциях (&& (и) . || (или)) числа рассматриваются целиком, а в логических побитовых операциях (& , | ), каждое число рассматривается по цифрам. В СИ истина представляется 1, ложь – 0.
3 3. Управляющие операторы. Оператор ветвления. Обозначение на БСА. Реализация на СИ. Пример использования оператора ветвления. IF и составная команда. На примере задачи поиска минимального числа и его позиции. Управляющие операторы: if – else - используется когда нужно сделать выбор. В зависимости от условий реализуется одно из направлений. while / do – while – выполняется несколько раз, пока не выполнится условие. for – идет повторения набора действий определенное количество раз. Ветвления – алгоритм, который в зависимости от условий реализуется по одному из направлений.
- + +/-
{ {.... ….
i
конец
f (A>5) if (a>5) printf (“%i”, A); printf (“%i”, A); else …. printf (“%i”, B); } ...}Х
П
х>0
«-»
«+»
ример: void main() - + {int x; scanf("%i", &x); if(x>0) printf("+"); else printf("-"); }
начало
Н ахождение минимального числа и его позиции:
{
i=0; i<10; i++
int x[10], i, min;for (i=0; i<10; i++)
{
x[i]
scanf("%i", &x[i]);}
min=x[0];
int poz=0;
for (i=1; i<10; i++)
if(min>x[i])
min=x[0]
int poz=0
{min=x[i];
poz=i;
}
printf ("poz=%i min=%i", poz, min);
i=1; i<10; i++
}
min, poz
poz=i;
min>x[i]
конец
min=x[i];
poz=i;