Форум программистов, компьютерный форум, киберфорум
Наши страницы
Turbo Pascal
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
Quadrillionaire
13 / 13 / 1
Регистрация: 09.03.2013
Сообщений: 180
1

Напечатать все слова, отличающиеся от последнего слова, и не содержащие повторяющихся букв

09.03.2013, 14:48. Просмотров 1037. Ответов 1
Метки нет (Все метки)

Добрый день Уважаемы программисты=) Уже неделю мучаюсь над заданием которое дал нам преподаватель по алгоритмам, при чем объяснять он ничего не хочет, мол: "Находите выход из ситуации сами". А на лекциях он об этом и не говорил. Короче говоря вот задания:

2. Слова текста из малых латинских букв записаны не менее чем через один пробел; текст оканчивается точкой. БЕЗ ИСПОЛЬЗОВАНИЯ конструкции STRING:
а) написать программу ввода текста с клавиатуры;
б) напечатать все слова, отличающиеся от последнего слова, и не содержащие повторяющихся букв.

Если со вторым заданием все предельно понятно (по крайней мере с вариантом а), то с оставшимися я просто в тупике. Не могу понять, что преподаватель хочет. Что должны делать программы более понятным и человеческим языком он объяснять не хочет. Я не прошу писать за меня эти программы, можете хотя бы объяснить, что надо сделать, что должна требовать и выводить каждая программы в каком виде, или хотя бы примерный вид алгоритма. Заранее благодарен Вам. Просто реально уже голова болит от этих запутанных слов=(
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.03.2013, 14:48
Ответы с готовыми решениями:

Напечатать все слова, отличающиеся от последнего слова, перед печатью перенеся последнюю букву в начало слова
Слова текста из малых латинских букв записаны не менее чем через один пробел; текст оканчивается...

В заданной строке, слова которого разделены одним пробелом, напечатать все слова, содержащие заданную последовательность букв
В заданной строке, слова которого разделены одним пробелом, напечатать все слова, содержащие...

Напечатать все слова, отличные от последнего слова, которые состоят из тех же букв, что и первое
п.1. - Напечатать все слова, отличные от последнего слова, которые со-стоят из тех же букв, что и...

Напечатать все слова, отличные от последнего слова, преобразовав по правилу: перенести первую букву в конец слова
Помогите пожалуста решыть: 10.18. Программа. Дана последовательность, содержащая от 2 до 30 слов,...

Напечатать все слова послоедовательности, которые отличны от последнего слова
Помогите решить задачу Дана последовательность, содержащая от 2 до 30 слов, в каждом из которых...

1
versa4e
trainspotting
1083 / 483 / 384
Регистрация: 11.11.2010
Сообщений: 773
09.03.2013, 17:11 2
Лучший ответ Сообщение было отмечено Quadrillionaire как решение

Решение

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
const
  maxNumberWords=50;
type
  wordLength=1..15;
  words=array[wordLength] of char;  
var
  c:char;
  arrWords:array[1..maxNumberWords] of words;
  wordsLengths:array[1..maxNumberWords] of wordLength;
  i,j,g,wordsAmount:integer;
  uniqueLetters,similarLast,exist:boolean;
begin
  i:=1;
  j:=1;
  writeln('Введите текст из малых латинских букв с минимум одним пробелом между словами.');
  writeln('В цонце поставьте точку.');
  repeat
    repeat
      read(c);
    until c<>' ';
    while (c<>' ') and (c<>'.') do
      begin
        arrWords[i,j]:=c;
        read(c);
        inc(j);
      end;
    if c=' ' then
      begin
        wordsLengths[i]:=j-1;
        inc(i);
        j:=1;
      end;
  until c='.';
  wordsAmount:=i;
  wordsLengths[wordsAmount]:=j-1;
  (*
  writeln('Массив полученных слов');
  for i:=1 to wordsAmount do
    begin
      for j:=1 to wordsLengths[i] do
        write(arrWords[i,j]);
      writeln;
    end;
  *)
  writeln('Поиск слов с неповтор. буквами и отличн. от последнего слова:');
  exist:=false;
  for i:=1 to wordsAmount-1 do
    begin
      uniqueLetters:=true;
      j:=1;
      while (j<wordsLengths[i]) and uniqueLetters do
        begin
          g:=j+1;
          while (g<=wordsLengths[i]) and uniqueLetters do
            if arrWords[i,j]=arrWords[i,g] then
              uniqueLetters:=false
            else
              inc(g);
          if uniqueLetters then
            inc(j);
        end;
      similarLast:=true;
      j:=1;
      while (j<=wordsLengths[i]) and similarLast do
        if arrWords[i,j]<>arrWords[wordsAmount,j] then
          similarLast:=false
        else
          inc(j);
      if uniqueLetters and not similarLast then
        begin
          exist:=true;
          write('Найдено слово - ');
          for j:=1 to wordsLengths[i] do
            write(arrWords[i,j]);
          writeln;
        end;
    end;
  if not exist then
    writeln('Таких слов не найдено');
end.
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.03.2013, 17:11

Напечатать все слова последовательности, которые отличны от последнего слова
Помогите пожалуйста решить: Дана последовательность, содержащая от 2 до 30 слов, в каждом из...

Напечатать все слова, отличные от последнего, поменяв первую и последнюю букву каждого слова
Дана последовательность, содержащая от 2 до 20 слов, в каждом из которых от 2 до 10 латинских...

Напечатать все слова последовательности, отличные от последнего слова
Дана непустая последовательность слов, содержащая от 1 до 8 букв; между соседними словами –...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru