Советы начинающему программисту

И в заключение наших первых уроков несколько советов начинающему программисту.
Первая трудность, с которой могут столкнуться начинающие программисты - в умении составить алгоритм. Надо помнить, что в распоряжении программиста всего две вещи: это ячейки памяти, в которых размещаются данные, и операции, которые можно выполнять над этими ячейками. Все действия в компьютере выполняются над ячейками памяти.
Следующая важная вещь - понять поставленную задачу. Для этого, пока алгоритм еще не составлен, попробовать рассмотреть несколько примеров на конкретных числах, чтобы увидеть, как оно будет работать.
Еще одна важная деталь - если какой-то вариант алгоритма уже получен, можно опять-таки просчитать его по шагам, тоже для конкретных примеров.
И, наконец, если алгоритм составлен, программа написана и работает, следует выполнить, говорят, тестирование, то есть проверить работу программы на различных наборах данных. Особенно важно проверять так называемые граничные условия. Например, попробовать ввести отрицательное число. Надо помнить также, что целые числа в компьютере не очень большие, и вычислить, например, факториал можно не для сколь угодно большого числа.

адания для самостоятельной работы к уроку 12

Теперь у вас достаточно знаний, чтобы вы могли выполнить эти достаточно сложные задания. Все они предполагают вложенные циклы. В вашем распоряжении операторы языка Си, операции, ячейки памяти. Дерзайте!

1. Написать программу, выводящую на экран первые k членов последовательности Фибоначчи. Последовательность Фибоначчи f1, f2,... образуется по закону:


2. Написать программу перевода натурального числа из десятичной системы счисления в двоичную.

3. Написать программу перевода натурального числа из десятичной системы счисления в N-ричную. Значение N вводится с клавиатуры (2<=N<=8).

4. Получить все шестизначные счастливые номера. Счастливым называется такое шестизначное число, в котором сумма его первых трех цифр равна сумме его последних трех цифр.

5. Найти все трехзначные простые числа.

6. Два простых числа называются "близнецами", если они отличаются друг от друга на 2 (таковы, например, числа 41 и 43). Напечатать все пары чисел-"близнецов", не превышающих число 200.

7. Дано натуральное число n . Получить все пифагоровы тройка натуральных чисел, каждое из которых не превосходит n , т. е. все такие тройки натуральных чисел a, b, c, что

8. Натуральное число из n цифр является числом Армстронга, если сумма его цифр, возведенных в n-ю степень, равна самому числу, как, например,

Получить все числа Армстронга, состоящие их двух, трех и четырех цифр.

9. Дано натуральное число. Выяснить, является ли оно палиндромом, т. е. таким числом, десятичная запись которого читается одинаково слева направо и справа налево.

 

Урок 13. Что такое массивы

Структурированные типы данных

В программах на языке Си можно использовать не только одиночные переменные, но и большие агрегаты данных. Для этого в языке существуют так называемые структурированные типы данных. Такие типы, в противоположность одиночной переменной, собирают "под одной крышей" целый набор данных. В этих данных могут присутствовать структурные отношения. Пример таких отношений: какой элемент является первым, какой последним, какой следует после заданного и т.п.
К структурированным типам в языке Си относятся, в частности, массивы (есть еще другие структурированные данные).



Описание массива

Массив – это упорядоченный набор фиксированного количества элементов одного и того же типа.
Каждому используемому в программе массиву дается имя (как и любой переменной).
Массивы определяются следующим образом: сначала указывается тип элементов массива, как для обычной переменной, затем выбирается имя массива и далее в квадратных скобках - максимальное количество элементов, которое будет использоваться в приложении. Например:

int a[10];
char b[20];
float d[50];

В первой строке объявлен массив а из 10 элементов целого типа. Во второй строке элементы массиваb имеют тип char, а в третьей - float:

Объем памяти, выделяемой под массив, зависит не только от количества элементов массива, но длины выбранного типа элементов. Мы помним, что стандартный тип int имеет длину 2 байта, char - 1 байт,float - 4 байта. Таким образом, для массива а будет зарезервировано 20 байт, для массива b тоже 20 и для масива d - 200 байт.
Почему же для массива надо заранее объявлять максимальное количество элементов? Дело в том, что память под массив выделяется на первом этапе компиляции, и в дальнейшем этот размер памяти не может изменяться. Поэтому компилятор должен сразу знать, сколько памяти понадобится программе. В связи с этим сразу видно, чем плох следующий код:

int N;
scanf("%d%", &N);
float d[N];

Здесь до начала выполнения программы значение N неизвестно, соответственно компилятор не знает, сколько памяти выделить, и в ходе работы программы неизбежно будут ошибки (программа попытается залезть в недопустимую область памяти).
Тем не менее, в языке Си есть возможность выделять память во время выполнения программы, в том числе и для массивов. Но там используется совсем другой механизм.









Последнее изменение этой страницы: 2016-04-07; Нарушение авторского права страницы

infopedia.su не принадлежат авторские права, размещенных материалов. Все права принадлежать их авторам. Обратная связь