- •Т.Э. Шульга основы программирования на языке с
- •Введение
- •1. Структура программы на языке с
- •Void main()
- •Задание 1. Вывод строки на экран с использованием esp-последовательности
- •2. Переменные. Основные типы данных
- •Задание 2. Описание переменных и преобразование типов
- •3. Ввод – вывод значений переменных
- •Void main()
- •Void main()
- •Задание 3. Форматирование вывода
- •4. Основные операции языка с
- •Void main ()
- •Заданиe 4. Простейшие вычисления
- •5. Конструкции выбора
- •Void main()
- •Void main()
- •Void main()
- •Задание 5. Обработка введенного символа
- •Задание 6. Вычисление значения функции
- •Задание 7. Применение разветвляющихся алгоритмов при решении простейших задач
- •Задание 8. Mультиветвление
- •6. Конструкции цикла и передачи управления
- •Int *t; // неинициализированный указатель на объект типа int,
- •Void main()
- •Int a2[3][2]; // массив из 3 массивов, содержащих по 2 целых элемента.
- •Задание 9. Детерминированные циклы. Простейшие задачи
- •Void main()
- •Задание 10. Итерационные циклы. Простейшие задачи
- •Void main()
- •Int last;
- •Задание 11. Одномерные массивы
- •Void main()
- •Задание 12. Вложенные циклы
- •Void main ()
- •Задание 13. Двумерные массивы
- •Void main ()
- •Задание 14. Посимвольная обработка строк
- •Void main ()
- •Задание 15. Сортировка массива
- •Void main ()
- •7.Функции
- •Int max (int n, int m ) // определение функции нахождения максимума
- •Void main()
- •Int strcmp(const char *str1, const char* str2);
- •Void main()
- •Int fclose (file * stream);
- •Int feof(file *stream);
- •Int fseek ( file* stream, long offset, int origin);
- •Void main ()
- •Задание 16. Определение и вызов функций
- •Задание 17. Рекурсивные функции
- •Задание 18. Использование библиотечных функций string.H
- •Задание 19. Использование библиотечных функций stdio.H
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.
Дано натуральное число N. Вычислить *.
Дано натуральное число N. Вычислить, где
Даны натуральные числа N и M (N>M). Вычислить.
Дано натуральное число N. Вычислить.
Дано натуральное число N и вещественное число x. Вычислить,. Функциюpow() не использовать.
Дано натуральное число N и вещественное число x. Вычислить,. Функциюpow() не использовать.
Дано натуральное число N и вещественное число x. Вычислить, . Функциюpow() не использовать.
Дано натуральное число N>2. Вычислить.
Дано натуральное число N и вещественное число x. Вычислить.
Дано натуральное число N. Вычислить, где
Дано натуральное число N. Вычислить.
Дано натуральное число N. Вычислить.