- •Методические указания
- •«Алгоритмизация и программирование»
- •Часть 1. Понятие алгоритма и принципы алгоритмизации
- •1 Основные принципы разработки алгоритмов и программ
- •Лабораторная работа 1
- •3 Циклический вычислительный процесс
- •Задания для самостоятельной работы
- •Лабораторная работа 2 селективная обработка массивов
- •Общие сведения
- •1 Селективная (выборочная) обработка информации
- •2 Нахождение экстремального значения
- •3 Формирование одномерного рабочего массива
- •3.7 Сортировка элементов массива
- •Задания для самостоятельной работы
- •Лабораторная работа 3 вложенные циклы. Обработка двумерных массивов
- •Общие указания
- •1 Вложенные циклы
- •3.9 Обработка заданной строки (столбца) матрицы
- •3.10 Обработка заданной диагонали матрицы
- •3.11 Селективная обработка строки (столбца) матрицы, удовлетворяющей заданному условию
- •Часть 2. Составление и отладка программы. Вычисление и обработка результатов
- •Ход работы
- •Вопросы для контроля и самостоятельной работы
- •Лабораторная работа 5
- •Символы типа
- •Задание к лабораторной работе
- •Лабораторная работа №6 Разветвляющийся вычислительный процесс с различными логическими условиями: оператор if... Else, условная операция (?:).
- •Теоретические сведения
- •Ход работы
- •Контрольные вопросы для подготовки и самостоятельной работы
- •Лабораторная работа 7 Программирование разветвляющегося циклического вычислительного процесса.
- •Теоретические сведения
- •Алгоритм работы оператора цикла for ():
- •Задание к лабораторной работе
- •Лабораторная работа №8
- •Ход работы
- •Задание к лабораторной работе
- •Операции с, их приоритеты и использование. Преобразование типов (4 часа)
- •Приоритет операций и порядок выполнения (ассоциативность)
- •(Новый_тип) операнд
- •Ход работы
- •Контрольные вопросы для подготовки и самостоятельной работы
- •Лабораторная работа №10 Массивы. Селективная обработка массивов
- •Теоретические сведения
- •Требования к содержанию отчёта приведены в лабораторной работе №1
- •Контрольные вопросы для подготовки и самостоятельной работы
- •Лабораторная работа №11
- •Ход работы
- •Контрольные вопросы для подготовки и самостоятельной работы
- •Лабораторная работа №12 Сортировка одномерных массивов
- •Многомерные массивы. (2часа)
- •Теоретические сведения
- •Контрольные вопросы для подготовки и самостоятельной работы
- •Изучение графических средств с
- •Графические функции
- •Графические примитивы
- •Ход работы
- •Контрольные вопросы для подготовки и самостоятельной работы
Алгоритм работы оператора цикла for ():
Вычисляется первое выражение (если оно присутствует).
Вычисляется второе выражение (если оно присутствует), проверяется условие окончания цикла:(<выражение 2>= = “ Ложно ”) т.е. Если оно не равно (“Истинно”) – происходит переход к пункту 3, иначе выход из цикла.
Исполняется тело цикла.
Вычисляется третье выражение, если оно присутствует.
Переход к пункту 2.
Появление в любом месте тела цикла оператора continue - приводит к прекращению выполнения операторов в теле цикла 4 немедленному переходу к шагу 2.
Выход из цикла возможен аналогично while с помощью операторов break, goto, return.
Пример 1 (вариант 1) (вариант 2)
-
#include <stdio.h>
void main (void)
{// Программа выводит четные числа
//в диапазоне от 100 до 0, в порядке // убывания.
for (int i=100;i>=0;i-=2) printf("\n%d",i);
} i - =2
f r (i=100; i>=0; i--)
if (i%2= =1) continue;o // оператор
// continue прерывает текущую
// итерацию
else printf("\n%d",i);
Для демонстрации гибкости оператора for перепишем пример в следующем виде (вариант 3):
for(int i=100;i>=0; printf("\n%d",i), i - =2);
Пример
/* ЗАНЯТИЕ N 4
Разработал ...........
Cтрока символов записывается в обратном порядке с
применением различных операторов организации циклов */
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
#include <math.h>
# define N 23
main()
{int t,b;
char string[]="\"Инициализация строки\"";
char m;
clrscr();
// Цикл for -с предусловием
printf("Вывод исходной строки\n");
for (t=0;t<N;t++)
printf("%c ",string[t]);
for (t=0,b=N-2;t<(N-1)/2;t++,b--)
{m=string[t];
string[t]=string[b];
string[b]=m;
}
printf("\nВывод строки в обратном порядке\n");
for (t=0;t<N;t++) printf("%c ",string[t]);
printf("\nВвод новой строки -y, нет-n:\t");
m=getche();
if(m!='n')
new_str: scanf("%s",string);
else printf("\n");
// Цикл while -с предусловием
t=0;
while(string[t]!='\0')
{printf("%c",string[t]);
t++;
}
printf("\nКоличество символов =%2d\n",t);
// Цикл d0...while -с постусловием
printf("Вывод строки в обратном порядке\n");
b=t-1;t=0;
do
{m=string[t];
string[t]=string[b];
string[b]=m;
t++;b--;
}while(t<b);
printf("%s ",string);
printf("\nВвод новой строки -y, нет-n:\t");
m=getche();
if(m=='y') goto new_str; //new_str -метка
else getch();
}
/* Вывод исходной строки
" И н и ц и а л и з а ц и я с т р о к и "
Вывод строки в обратном порядке
" и к о р т с я и ц а з и л а и ц и н И "
Ввод новой строки -y, нет-n: n
"икортс яицазилаицинИ"
Количество символов =22
Вывод строки в обратном порядке
"Инициализация строки"
Ввод новой строки -y, нет-n: y
qwert12345
Количество символов =10
Вывод строки в обратном порядке
54331trewq
Ввод новой строки -y, нет-n: n */
Ход работы
По индивидуальному заданию преподавателя составить программу с различными вариантами применения операторов цикла: while, do… while, for. Предусмотреть дополнительные возможности выхода из циклов (операторы break, goto).
Набрать программу на компьютере, выявить и устранить ошибки.
Ознакомиться с работой операторов цикла в языке С.
Получить результаты работы программы.
Оформить отчет и сделать выводы о проделанной работе, изучив контрольные вопросы по теме.