Все о Pascal
Главная
Вход
Регистрация
Воскресенье, 01.12.2024, 21:57Приветствую Вас, программист Гость | RSS
Меню сайта

Категории раздела
Уроки Pascal [36]
Мемы - "Типичный программист" [1]
Задачи [10]
Заработок в интернете [14]
Олимпиадные задчи [1]

Наш опрос
Оцените мой сайт
Всего ответов: 249

Статистика

Форма входа

Главная » Статьи » Уроки Pascal

Урок 19.

 Лекция 19.Комбинированные задачи.
автор: Садовский Ефим Моисеевич

1. Повторение.
    Строковые величины. Замена символов. Подсчет количества символов. Накопление литерных величин. Перестановка символов. Цикл While.

2. Комбинированные задачи.
    Практически любую достаточно сложную задачу в программировании можно "разложить" на несколько простых и решать их последовательно, выводя на экран и проверяя промежуточные результаты.
    Например, третью задачу предыдущего урока: Вводится предложение. Поменяйте местами первое и последнее слово, если они содержат одинаковое количество символов
    можно было разложить на:
1. Ввод исходных данных.
2. Подсчет количества символов (например, N) в первом слове с помощью цикла while.
3. Замена символов 1-го и length(s)-N-го, 2-го и length(s)+1-N-го, 3-го и length(s)+2-N-го, …, N-го и length(s)+N-1-N-го.
4. Вывод результатов на экран.
    Вообще, практически в любой задаче присутствуют блоки ввода данных и вывода результатов на экран.
    Решение таких задач проще выполнять поэтапно.
    Сначала организуем ввод данных.
    Решаем очередную задачу и выводим промежуточные результаты (например, количество символов первого слова), проверяя их.
    В более сложных задачах – это практически единственный способ отыскать ошибку.
Пример 1. 
    Удалить в предложении 3-е слово.
    Разбиваем задачу на несколько этапов:
1. Ввод данных.
2. Записываем в новую переменную первую часть предложения (до 3-го слова).
3. Определяем номер символа в предложении, которым заканчивается третье слово.
4. Дописываем в новую строку окончание предложения.
5. Вывод результатов.
    После второго этапа:
Program p1;
 var s,s1:string;
 i,k:integer;
 begin
 write('Введите предложение: ')
 readln(s);
 s1:='';
 k:=1;
 i:=1;
 while k<3 do
 begin
 if s[i]=' ' then k:=k+1;
 s1:=s1+s[i];
 i:=i+1;
 end;
 writeln(s1);
 writeln(i);
 end.
    После этого этапа очень важно проверить правильно ли сформировано начало литерной величины S1 и чему равна переменная i (ее значение должно совпадать с номером первой буквы третьего слова, при необходимости коррекции после цикла while дописывается строка i:=i+1;).
После третьего этапа:
Program p1;
 var s,s1:string;
 i,k:integer;
 begin
 write('Введите предложение: ')
 readln(s);
 s1:='';
 k:=1;
 i:=1;
 while k<3 do
 begin
 if s[i]=' ' then k:=k+1;
 s1:=s1+s[i];
 i:=i+1;
 end;
 while s[i]<>' ' do
 i:=i+1;
 writeln(i);
 end.
    Мы определяем номер следующего пробела (после 3-го слова). После этого этапа проверяем чему равна переменная i (ее значение должно совпадать с номером пробела после третьего слова, при необходимости коррекции после цикла while дописывается строка i:=i+1; или i:=i-1;).
    Окончательное решение задачи:
Program p1;
 var s,s1:string;
 t,i,k:integer;
 begin
 write('Введите предложение: ')
 readln(s);
 s1:='';
 k:=1;
 i:=1;
 while k<3 do
 begin
 if s[i]=' ' then k:=k+1;
 s1:=s1+s[i];
 i:=i+1;
 end;
 while s[i]<>' ' do
 i:=i+1;
 for t:=i to length(s) do
 s1:=s1+s[t];
 writeln('Полученное предложение:',s1);
 end.
3. Решение задач.
1. Удалить в предложении N-е слово.
2. Вводится предложение. Заменить все буквы N-го слова точками.
3. Поменять местами 1 и N-е слово в предложении.

pascal, pascal, pascal, pascal
Категория: Уроки Pascal | Добавил: yurabobr1 (13.11.2012)
Просмотров: 2013 | Теги: предложение, слово, -го, номер, writeln, этап, End, задача, length, символ | Рейтинг: 0.0/0
Всего комментариев: 0
Имя *:
Email *:
Код *:
Поиск

Друзья сайта
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz


  • Copyright MyCorp © 2024