- •1. Основные этапы разработки программных продуктов
- •1.1 Постановка задачи
- •Словесная формулировка
- •Формульная постановка задачи
- •1.2 Создание программного продукта
- •1.2.1.Формирование математической модели
- •Формирование исходных данных
- •Составление расчётных зависимостей
- •Правила формирования математической модели.
- •1.2.2.Алгоритмизация задачи
- •Выбор метода решения
- •Составление алгоритма решения
- •Программирование задачи
- •1.2.3. Реализация программного продукта
- •1.2.4. Работа с результатами
- •1.2.5.Анализ результатов решения
- •1.2.6.Принятие решения
- •1.2.7.Составление технической документации
- •1.3.Полная обработки задачи пользователя
- •1.4.Обеспечение эффективности разработки программных продуктов
- •2.5 Идентификаторы
- •2.6 Описание операций
- •2.6.1 Унарные операции
- •2.6.2 Бинарные операции
- •2.6.3 Пунктуаторы
- •Программирование простых ветвлений
- •4.1.5. Программирование задачи
- •Правила составления и использования
- •4.1.5.2. Операторы условной передачи управления
- •Укороченный оператор условного перехода
- •Правила записи и выполнения
- •Условная операция
- •Технология программирования арифметических циклов
- •Циклы с аналитическим заданием аргумента
- •Постановка задачи
- •Формирование математической модели
- •Выбор метода решения
- •Составление алгоритма
- •Оператор цикла с предусловием
- •Правила записи и выполнения
- •Оператор цикла с постусловием
- •Правила записи и выполнения
- •Оператор пошагового цикла for
- •Правила записи и выполнения
- •Программа по алгоритму цикла с предусловием
- •Программа по алгоритму цикла с постусловием
- •Программа по алгоритму цикла с параметром
- •Циклы с табличным заданием аргумента
- •Описание массивов
- •Описатель имя[размер];
- •Обозначение элементов массива
- •Имя[индекс]
- •Описатель имя[разм_1] …[разм_i]… [разм_n];
- •Постановка задачи
- •Математическая формулировка
- •Выбор метода решения
- •Составление алгоритма решения
- •Алгоритмизация структурой цикла с предусловием
- •Алгоритмизация структурой цикла с постусловием
- •Алгоритмизация структурой цикла с параметром
- •Программирование задачи
- •Описание массивов
- •Обозначение элементов массива
- •Составление программ решения задачи
- •Улучшение качества программных продуктов
- •Организация ввода-вывода Использование укороченных спецификаторов
- •Ввод переменных
- •Вывод переменных
- •Организация ввода в диалоге
- •Варианты ввода массивов
- •Оформление выводимых величин
- •Управление выполнением программ Использование составных присваиваний
- •Выбор устройства вывода
- •Повторение расчётов
- •Приостановка вывода
- •Очистка экрана
- •Позиционирование курсора
- •Пример улучшения качества
- •Программирование с использованием подпрограмм
- •Имя (фактические параметры)
- •Подпрограмма с одним результатом
- •Формирование математической модели
- •Выбор метода решения
- •Составление алгоритма решения
- •Программирование задачи
- •Составление алгоритма решения
- •Программирование задачи
- •Составление алгоритма решения
- •Программирование задачи
- •Подпрограмма с результатом – массивом
- •Постановка задачи
- •Математическая формулировка
- •Выбор метода решения
- •Составление алгоритма решения
- •Программирование задачи
- •Обработка текстовой информации в Си Символьные строки
- •Определение значения символьной строки
- •Массивы строк
- •Ввод строки
- •Выделение памяти
- •Функции ввода символьной строки
- •Функция ввода символьной строки gets( )
- •Функция ввода символьной строки scanf( )
- •Преобразование символьных строк
- •Функция atoi( )
- •Функция atol( )
- •Функции atof( ) и atold( )
- •Методика ввода числовых данных с использованием функции gets( )
- •Вывод строки
- •Вывод строки функциями printf( ) и fprintf( )
- •Вывод строки функциями puts( ) и fputs( )
- •Перевод чисел в формат символьной строки
- •Обработка символьных строк
- •Определение длины строки
- •Объединение строк
- •Копирование строк
- •Сравнение строк
- •Функции по работе с датой и временем.
- •Структуры.
- •Работа с дисками.
- •Ввод-вывод потока.
- •Открытие потока.
- •Объектно−ориентированное программирование
- •Классы ObjectWindows
- •Приложение коды клавиш
- •Краткий справочник по Си
- •Оператор вывода на принтер
- •Структура оператора
- •Структура оператора
- •Структура оператора
- •Библиографический список
-
Составление программ решения задачи
Выполним идентификацию всех переменных алгоритмов: вещественной переменной про, целой i и двух вещественных массивов:
-
исходного С(7);
-
расчетного П(7).
Идентификация переменных имеет вид табл. 5.3.
Таблица 5.3
Обозначение в алгоритме |
c1 |
c2 |
c3 |
... |
c6 |
c7 |
про |
пi |
ci |
i |
Обозначение в программе |
c[0] |
c[1] |
c[2] |
... |
c[5] |
c[6] |
pro |
p[i] |
c[i] |
i |
В соответствии с таблицей расположение элементов исходного массива в оперативной памяти представлено схемой:
|
c[0] |
c[1] |
c[2] |
c[3] |
c[4] |
c[5] |
c[6] |
|
|
c1 |
c2 |
c3 |
c4 |
c5 |
c6 |
c7 |
|
|
4 байта |
4 байта |
4 байта |
4 байта |
4 байта |
4 байта |
4 байта |
|
Для расчетного массива П(7) распределение оперативной памяти аналогично представленному для массива С.
Выполним программы с различными операторами цикла.
-
Внимание! Формирование начального значения параметра и логического выражения операторов цикла должно учитывать уменьшение индексов в Си на единицу по отношению к указанным в алгоритме.
Программа по алгоритму цикла с предусловием
Вариант программы:
/* Программа с использованием цикла с предусловием */
#include <stdio.h> /* директивы */
#include <math.h> /* препроцессора */
main() /* заголовок основной функции */
{
float c[7], p[7], pro; /* описание вещественных массивов и переменной */
int i; /* описание целой переменной */
scanf("%3f%4f%4f%4f%4f%4f%4f%4f",&pro,&c[0],&c[1],
&c[2],&c[3],&c[4],&c[5],&c[6]); /* ввод переменных */
fprintf(stdprn," pro=%8.2f\n\n", pro); /* вывод переменной pro */
i=0; /* формирование начального значения параметра цикла */
while( i < 7 ) /* заголовок цикла */
{
p[ i ] = ( c[ i ] * pro ) / 100.; /* вычисление текущего значения функции */
fprintf(stdprn," %8.2f %7.2f\n", c[ i ], p[ i ] );
i=i+1; /* закон изменения параметра цикла */
}
}
25.492.503.948.738.892.320.250. – значения вводимых переменных.
Программа по алгоритму цикла с постусловием
Вариант программы имеет вид
/* Программа с использованием цикла с постусловием */
#include <stdio.h> /* директивы */
#include <math.h> /* препроцессора */
main() /* заголовок основной функции */
{
float c[7], p[7], pro; /* описание вещественных массивов и переменной */
int i; /* описание целой переменной */
scanf("%3f%4f%4f%4f%4f%4f%4f%4f",&pro,&c[0],&c[1],
&c[2],&c[3],&c[4],&c[5],&c[6]); /* ввод переменных */
fprintf(stdprn," pro=%8.2f\n\n", pro); /* вывод переменной pro */
i=0; /* формирование начального значения параметра цикла */
do /* заголовок цикла */
{
p[ i ] = ( c[ i ] * pro ) / 100.; /* вычисление текущего значения функции */
fprintf(stdprn," %8.2f %7.2f\n", c[ i ], p[ i ] );
i=i+1; /* закон изменения параметра цикла */
}while( i < 7 ); /* условие повторения цикла */
}
25.492.503.948.738.892.320.250. -значения вводимых переменных.
Программа по алгоритму цикла с параметром
Вариант программы имеет вид
/* Программа с использованием цикла с параметром */
#include <stdio.h> /* директивы */
#include <math.h> /* препроцессора */
#include <stdlib.h>
main() /* заголовок основной функции */
{
float c[7], p[7], pro; /* описание вещественных массивов и переменной */
int i; /* описание целой переменной */
scanf("%3f%4f%4f%4f%4f%4f%4f%4f",&pro,&c[0],&c[1],
&c[2],&c[3],&c[4],&c[5],&c[6]); /* ввод переменных */
fprintf(stdprn," pro=%8.2f\n\n", pro); /* вывод переменной pro */
for( i=0 ; i < 7 ; i=i+1 ) /* заголовок цикла */
{
p[ i ] = ( c[ i ] * pro ) / 100.; /* вычисление текущего значения функции */
fprintf(stdprn," %8.2f %7.2f\n", c[ i ], p[ i ] );
}
}
25.492.503.948.738.892.320.250. - значения вводимых переменных.
Вопросы для контроля
-
Какой вычислительный процесс называется циклическим?
-
Что такое цикл, тело цикла, параметр цикла?
-
Каковы обязательные элементы цикла?
-
На какие виды подразделяются арифметические циклы?
-
Как графически обозначаются структуры циклов?
-
Какова структура оператора цикла с предусловием, как он выполняется?
-
В чем заключаются правила записи и выполнения оператора while?
-
Какова структура оператора цикла с постусловием, как он выполняется?
-
В чем заключаются правила записи и выполнения оператора do ... while?
-
Какова структура пошагового оператора цикла, как он выполняется?
-
Как формируются выражения оператора пошагового цикла?
-
В чем заключаются правила записи и выполнения оператора for?
-
Как принудительно выйти из любого цикла?
-
Как выглядит табличное изменение аргумента?
-
Что такое массив, какими параметрами он характеризуется?
-
Что такое одномерный массив и чем отличаются многомерные массивы?
-
Что определяет размер массива?
-
Что является параметром цикла при табличном задании и почему?
-
Что такое описание массива и как оно выполняется?
-
Как обозначаются элементы массива в Си?
-
Как распределяется память для хранения одномерных массивов?