Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
0 / 0 / 0
Регистрация: 15.12.2017
Сообщений: 10
1

Некорректно работает программа

15.12.2017, 02:44. Просмотров 907. Ответов 6
Метки нет (Все метки)

Здравствуйте, прошу помощи в выполнении следующего задания: "Дана последовательность содержащая от 2 до 50 слов, в каждом из которых от 1 до 8 строчных латинских букв; между соседними словами - не менее одного пробела, за последним словом - точка. Напечатать те слова последовательности, которые отличны от последнего слова и удовлетворяют следующему свойству: в слове гласные буквы (a, e, i, o, u, y) чередуются с согласными." (приложение консольное).

Я написал данную программу, но она работает несколько некорректно - просто после 61 строки в консоли ничего не происходит (скрин ниже).
Некорректно работает программа


Вот код:
Delphi
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
81
82
83
84
85
program Project2;
 
{$APPTYPE CONSOLE}
 
uses
  SysUtils;
 
var s,w : string;
  gl,sogl : set of char;
  i,j,g : integer;
  Count : integer;
  Words : array[1..50] of string[8];
begin
  writeln('Enter text: ');
  readln(s);
 
  s := s + ' ';
  w := '';
  Count := 0;
  for i:=1 to length(s) do
  begin
    if s[i] <> ' ' then w := w+s[i]
    else
     begin
       if Length(w)>0 then
        begin
         Inc(Count);
         if (Length(w)>8) or (Length(w)<2)  then
           begin
              WriteLn('Error! Words must have from 2 to 8 symbols.');
              Writeln;
              WriteLn('Press Enter to exit');
              Readln;
              Halt;
           end;
         if Count>50 then
           begin
              WriteLn('Error! String must have no more than 50 words.');
              Writeln;
              WriteLn('Press Enter to exit');
              Readln;
              Halt;
           end;
         Words[Count] := w;
       end;
       w := '';
     end;
  end;
  Writeln;
 
  if Count<2 then begin
      WriteLn('Error! String must have at least 2 words.');
      Writeln;
      WriteLn('Press Enter to exit');
      Readln;
      Halt;
  end;
 
  WriteLn('List of words:');
  for i:=1 to Count do
    Writeln(i,' ',Words[i]);
 
  gl:=['A', 'E', 'I', 'O', 'U'];
  sogl:=['B', 'C', 'D', 'F', 'G', 'H', 'J', 'K', 'L', 'M', 'N', 'P', 'Q', 'R', 'S', 'T', 'V', 'W', 'X', 'Y', 'Z'];
  WriteLn;
 
  for i:=1 to Count-1 do
    begin
     g:=0;
     if Words[i]<>Words[Count] then
      begin
       for j:=2 to Length(Words[i]) do
        if ((Words[i][j-1] in gl) and (Words[i][j] in sogl)) or ((Words[i][j-1] in sogl) and (Words[i][j] in gl)) then
          begin
          Inc(g);
          end;
       if g = Length(Words[i])-1 then
        begin
         Write(Words[i],' ');
        end;
       end;
    end;
  WriteLn;
  readln;
end.
Заранее спасибо!
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.12.2017, 02:44
Ответы с готовыми решениями:

Программа работает некорректно
После выполнения программы видает ошибку: &quot;Access violation... Write of address...&quot; Задча...

Некорректно работает программа
Сам код: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes,...

Некорректно работает программа
Здравствуйте. Может, кто-то сможет помочь разобраться в чем ошибка вот в этой программе. Используя...

Некорректно работает программа с ассемблерными вставками
Пришлось столкнуться с ассемблером. Начал писать программу, но столкнулся с тем что некорректно...

6
313 / 266 / 87
Регистрация: 27.05.2017
Сообщений: 1,350
15.12.2017, 07:09 2
Лучший ответ Сообщение было отмечено Hoosfive как решение

Решение

Может, gl и sogl строчными заполнить, а не прописными?
1
Модератор
867 / 683 / 184
Регистрация: 31.05.2013
Сообщений: 5,173
Записей в блоге: 6
15.12.2017, 09:37 3
Вот скажи, как юзер должен догадаться, что в словах должно быть от 2 до 8 символов и строк должно быть не больше 50? Я открыл прогу, ввёл букоффки и числа, а она мне "Шиш тебе" и buy-buy. Хотя бы так сделай:
Delphi
1
  writeln('Enter text. Words must have from 2 to 8 symbols and the string must have no more than 50 words ');
Тестим дальше.

Добавлено через 39 секунд
Цитата Сообщение от Massaraksh7 Посмотреть сообщение
Может, gl и sogl строчными заполнить, а не прописными?
Для char`a это пофиг.
0
313 / 266 / 87
Регистрация: 27.05.2017
Сообщений: 1,350
15.12.2017, 09:39 4
Цитата Сообщение от Matan! Посмотреть сообщение
Для char`a это пофиг.
Вообще-то я проверил.
1
313 / 266 / 87
Регистрация: 27.05.2017
Сообщений: 1,350
15.12.2017, 09:43 5
---
2
Миниатюры
Некорректно работает программа   Некорректно работает программа  
Модератор
867 / 683 / 184
Регистрация: 31.05.2013
Сообщений: 5,173
Записей в блоге: 6
15.12.2017, 09:50 6
Massaraksh7,
Сорри не обратил внимания, что в другом кейсе ввожу.
0
0 / 0 / 0
Регистрация: 15.12.2017
Сообщений: 10
15.12.2017, 10:41  [ТС] 7
Massaraksh7, спасибо большое, теперь программа нормально работает)
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.12.2017, 10:41

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

Программа запущенная из исполняемого файла работает некорректно
Написал простенький диспетчер задач, и проблема в том, что при запуске программы из среды...

При запуске exe файла на Windows XP, программа или не запускается или работает некорректно
Написал программу в Delphi Borland 7 на ОС Windows 7 sp1, все работает как положено. При запуске...

Некорректно работает программа
Добрый вечер ! мне нужно найти произведение всех нечетных элементов массива , но почему то...

Некорректно работает программа на С/С++
Запускается программа вот её код #define _CRT_SECURE_NO_WARNINGS #include &lt;windows.h&gt; #include...

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

Программа работает некорректно
Здравствуйте! Возникла проблема с программой, она работает не так как надо. Нужно из одного...


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

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

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