Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Пособие С(часть1-3).doc
Скачиваний:
23
Добавлен:
12.02.2015
Размер:
854.02 Кб
Скачать

Void main()

{

const int n=255;

char stroka [n];

gets(stroka);//считали строку

int len = 0; // будем использовать переменную len

//как индекс массива

while (stroka[len]) len++; // условие окончание цикла stroka[len]= ‘\0’

printf(“%d”,len);

}

Многомерные массивы описываются как массивы массивов, например,

Int a2[3][2]; // массив из 3 массивов, содержащих по 2 целых элемента.

Для обращения к элементу двумерного массива используется два индекса, например, a2[i][j]. Рассмотрим, как используется конструкция вложенных циклов для работы с двумерными массивами и как возможен выход из вложенных циклов.

Для принудительного выхода из вложенных циклов используют оператор безусловного перехода goto, который имеет формат:

goto идентификатор;

где идентификатор – имя метки оператора, расположенного в той же функции, где используется оператор безусловного перехода. Метка – это обычный идентификатор, после которого ставится двоеточие и следует некоторый оператор. Использование оператора goto принято считать плохим стилем, однако в некоторых случаях его использование может быть действительно обосновано. Например, при решении задачи поиска в матрице размерности (n,m) поиска в матрице хотя бы одного элемента с заданным значением x.

for (int i=0;i<n; i++)

for (int j=0; j<m;j++)

if (a[i][j]==x) goto success;

success:

prinf(“Элемент найден. Строка i= %d”,i);

prinf(“Столбец j= %d”,j);

Также в циклах применяется оператор continue. С его помощь завершается текущая итерация и начинается проверка условий дальнейшего продолжения цикла. Типичный пример использования continue – подсчитать среднее значение только положительных элементов одномерного массива.

for (s=0,k=0,i=0;i<n;i++)

{

if (x[i]<=0) continue;

k++;

s+=x[i];

}

if (k>0) s=s/k;

Каждому студенту рекомендуется выполнить одно из упражнений 1–12 каждого задания 1–6 и все упражнения задания 7. Тестовый пример для данной задачи подготовить в книге MSExcel.

Задание 9. Детерминированные циклы. Простейшие задачи

Пример. Даны натуральные числа N, x. Вычислить .

#include <stdio.h>

#include <conio.h>

Void main()

{

int x,N,ed=1,fact=1,stepX=1;

float S=0;

printf("Enter x,N ");

scanf("%d%d", &x,&N);

for (int k=1; k<=N; k++)

{

ed= -ed; // меняем знак единицы при каждой итерации

stepX*=x; // вычисляем

fact*=k; // вычисляем (k+1)!

S+=ed*stepX/float(fact);

}

printf("S= %f",S);

getch();

}

Для проверки данной программы, например, при x=2, N=6 целессобразно составить таблицу MS Excel, предствленную на рис. 1.

Рис. 1. Тестовоя таблица MS Excel.

Данные в этой таблице представлены на рис 2.

Рис. 2. Данные тестовой таблицы MS Excel.

  1. Дано натуральное число N. Вычислить *.

  2. Дано натуральное число N. Вычислить, где

  3. Даны натуральные числа N и M (N>M). Вычислить.

  4. Дано натуральное число N. Вычислить.

  5. Дано натуральное число N и вещественное число x. Вычислить,. Функциюpow() не использовать.

  6. Дано натуральное число N и вещественное число x. Вычислить,. Функциюpow() не использовать.

  7. Дано натуральное число N и вещественное число x. Вычислить, . Функциюpow() не использовать.

  8. Дано натуральное число N>2. Вычислить.

  9. Дано натуральное число N и вещественное число x. Вычислить.

  10. Дано натуральное число N. Вычислить, где

  11. Дано натуральное число N. Вычислить.

  12. Дано натуральное число N. Вычислить.