Технический форум

Технический форум (http://www.tehnari.ru/)
-   Форум программистов (http://www.tehnari.ru/f22/)
-   -   Помогите пожалуйста с задачей (http://www.tehnari.ru/f22/t43401/)

stervoshka 16.12.2010 03:57

Помогите пожалуйста с задачей
 
Помогите пожалуйста...Очень нужно решить задачку в Паскале...Получаю сейчас второе заочное и задали задачку...А я уже так давно их не решала, боюсь что не справлюсь или напартачу так, что задачу не примут...:tehnari_ru_1019:

Нужно составить программу, выводящую строку "первое слово лесенкой", а остальные в строку...Например, Фамилия под углом лесенкой, имя отчество в строку...В программе должен быть обеспечен ввод строки и вывод на экран результатов. По окончании каждого расчета и просмотра результатов предусмотреть очистку экрана,возобновление расчетов с другой строкой("бесконечный цикл") или выход из программы.

Вот такая задача...Очень прошу помочь решить...ну или может вы знаете, где решались похожие задачи...что бы хотя бы посмотреть...а то уже давно весь паскаль из головы вылетел:tehnari_ru_117:

AlexZir 16.12.2010 04:43

Для решения нужно использовать расширенный набор строковых функций из библиотеки crt.
Если никто не напишет - будет вам листинг.

Vladimir_S 16.12.2010 09:50

Цитата:

Сообщение от AlexZir (Сообщение 430186)
Для решения нужно использовать расширенный набор строковых функций из библиотеки crt.
Если никто не напишет - будет вам листинг.

Ну не знаю - если я правильно понял задание насчет "лесенки", то вроде можно и по-простому, по рабоче-крестьянски:
Код:

Uses CRT;
VAR
 S:String;
 i:Byte;
 j:Integer;
BEGIN
 Repeat
  ClrScr;
  WriteLn('Enter the string:');
  ReadLn(S);
  If S<>'' then
  begin
    i:=1;
    repeat
    for j:=1 to (i-1) do
      Write(' ');
    WriteLn(S[i]);
    Inc(i);
    until S[i]=' ';
    repeat
    Inc(i);
    until S[i]<>' ';
    for j:=1 to i do
    Write(' ');
    for j:=i to Length(S) do
    Write(S[j]);
    WriteLn;
    ReadLn;
  end;
 Until S='';
END.

Программа выходит из цикла при вводе пустой строки.

stervoshka 27.12.2010 02:13

Спасибо)))
Но почему-то у меня программа выводит просто слово в столбик а потом повторяет его
Я например пишу Иванов Иван Иванович и программа мне выводит Иванов в столбик а потом повторяет... А как сделать что бы Иванов было диагонально т.е лесницей каждая буква как по ступеням а потом писалось два остальных слова в строчку??
Заранее спасибо)))

Vladimir_S 27.12.2010 09:43

Вложений: 1
Цитата:

Сообщение от stervoshka (Сообщение 435148)
Спасибо)))
Но почему-то у меня программа выводит просто слово в столбик а потом повторяет его
Я например пишу Иванов Иван Иванович и программа мне выводит Иванов в столбик а потом повторяет... А как сделать что бы Иванов было диагонально т.е лесницей каждая буква как по ступеням а потом писалось два остальных слова в строчку??
Заранее спасибо)))

Вы знаете - я просто в недоумении... Сейчас запустил, и вот что у меня:
Вложение 27026
Даже и не знаю, чем помочь - тут явные "задвиги" транслятора.
P.S. Впрочем, подозреваю, что дело тут не в трансляторе, а в том, что Вы пытаетесь смотреть результат каким-то вьюером, который попросту автоматически срубает пробелы в начале строки. А вот насчет того, что "повторяет" - тут совсем идей нет.
На всякий случай - поясню алгоритм работы программы.
1. Вводится строка. Если она пустая - программа прерывается, если нет - едет дальше.
2. Символы строки, расположенные до первого пробела, выводятся так:
а) каждый - в своей строке;
б) перед выводом очередного символа на экран выводятся пробелы в количестве (номер символа)-1.
3. Символы строки, стоящие после первого пробела, выводятся в одну строку подряд, начиная с позиции конца "лесенки" плюс 1.
Вот, собственно, и всё. Примитивно - даже и ошибкам-то взяться неоткуда!

stervoshka 27.12.2010 22:36

Ясно..Попробую еще раз...может действительно что-то с программой...Еще раз спасибо))))


Часовой пояс GMT +4, время: 05:34.

Powered by vBulletin® Version 4.5.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.