Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ПЯВУ - С-С++методичка и титул.doc
Скачиваний:
12
Добавлен:
08.11.2019
Размер:
789.5 Кб
Скачать

Программа:

void main( )

{ int N, i, p=1; // р=1 – признак простого числа

clrscr ( );

printf (“ Введите натуральное число N>1: ”);

sсanf (“ %d”, &N); // ввод числа

for (i=2; i <= N / 2; i++) // цикл по делителям

if (!(p = N % i)) break ; // деление без остатка (р=0)

if (p) printf (“Число %d простое.”, N);

else printf (“Число %d не простое.”, N);

}

Рассмотрим пример применения всех трех операторов цикла с вложенными циклами.

Пример27.

Ввести натуральное число N и найти его разложение на простые множители, произведение которых дает N. Организовать диалог с пользователем (интерактивный режим) по вводу любого числа N и контроль его ввода.

Программа.

void main( )

{ int N, n, i, p; // описание переменных

clrscr( ); // очистка экрана

puts (“ Разложение числа на простые множители ”);

do // цикл диалога

{ do // цикл проверки числа

{ printf(“\nВведите натуральное число >1:”);

scanf (“ %d”, &N); // ввод числа

} while (N<=1); // условие продолжения ввода

n=N; // текущее значение N

p=1; // признак простого числа

printf(“\n %d =”, N); // вывод числа N

for ( i=2; i<=N/2; i++) // цикл по множителям

{ if (n % i == 0) // если число не простое

{ p=0; // признак не простого числа

while (n % i == 0) // цикл по одинаковым множителям

{ printf (“%d*”, i); // вывод множителя

n /= i; // число делится на множитель

}

}

} // конец цикла по множителям

if (p) printf(“ простое число ”);

printf (“\nПродолжить? Да – нажмите 1, Нет – любую клавишу”);

i=getche( ); // ввод видимого символа

} while (i == ’1’); // условие продолжения диалога

}

Работа с массивами

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

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

Описание массива должно соответствовать формату:

тип имя [размер1] [размер2],…; причем скобки [ ] обязательны для каждой размерности.

Например,

int ar[5]; // одномерный массив из 5-ти целых чисел

char st [20], buf[80]; // символьные массивы

float R[2][3]; // двухмерный массив вещественных чисел

В математике массив R представляется матрицей из 2-х строк и 3-х столбцов:

В памяти ЭВМ двухмерные массивы заполняются построчно, то есть второй индекс меняется чаще: R[2][3] = {R[0][0], R[0][1], R[0][2], R[1][0], R[1][1], R[1][2], R[1][3]}. По всем размерностям нижний индекс равен 0, а верхний N–1, где N – число элементов по данной размерности.