close

Вход

Забыли?

вход по аккаунту

?

Задача 2 (5)

код для вставкиСкачать
Условие задачи
Написать программу, которая выводит введенную строку в обратном порядке, причем каждое слово с новой строки. Вывод оформить в телеграфном стиле, т.е. каждая буква появляется с некоторой задержкой. Для этого использовать функцию delay(N), где N-время задержки.
Описание метода решения задачи
1. Выявляем исходные данные, результаты, назначаем им имена.
Исходные данные: строка *str1- объявляется как указатель; Результат: строка, выводимая в телеграфном стиле, т.е. каждая буква появляется с некоторой задержкой в обратном порядке, каждое слово с новой строки
2. Выбираем метод решения задачи, разбиваем на этапы (с учетом возможностей ЭВМ)
Первоначально составим укрупненную схему, а затем подробную для блока III.
Укрупненная схема
I. Подключение всех необходимых заголовочных файлов
II. Локальное описание переменных char *str1; int len=0;
III. Получение необходимого результата и вывод его на экран
III. 1. Так как алгоритм циклический, то выводим три набора формул и условие окончания (повторения) цикла. - рабочие формулы - нет, ничего не вычисляем
- законы изменения аргументов (переменных); так как вывод символов идет в обратном порядке, то
- len--уменьшаем длину строки - str1--уменьшаем адрес переменной str1 на одну ячейку
- формулы для вычисления начальных значения аргументов (переменных): len=0; условие повторения цикла: len>=0;
2. МРЗ:
- вводим строку (gets(str1); функция считывает строку из stdin и записывает адрес str1, добавляя символ '\0')
- в переменную len записываем длину строки str1
- строку принимаем равной str1=str1+len, т.е. адрес в указателе str1 увеличиваем на длину строки для того, чтобы встать на '\0' символ строки.
- цикл обработки строки (for (;len>=0;len--,str1--)): * выводим символ (putch(*str1)), * используем функцию delay(200) для задержки вывода
* проверяем, если символ - пробел, переводим курсор на следующую строку (if (*str1==' ') cout<<endl;)
Блок схема алгоритма решения задачи
Программа, реализующая данный алгоритм
#include <stdio.h>
#include <string.h>
#include <conio.h>
#include <ctype.h>
#include <dos.h>
#include <iostream.h>
void main()
{
char *str1;
int len=0;
clrscr();
printf("Введи строку \n");
gets(str1); len=strlen(str1);
str1=str1+len;
printf("строка..... \n");
for (;len>=0;len--,str1--)
{
putch(*str1); delay(500);
if (*str1==' ') cout<<endl;
}
cout<<endl;
getch();
}
Документ
Категория
Рефераты
Просмотров
14
Размер файла
19 Кб
Теги
задачи
1/--страниц
Пожаловаться на содержимое документа