С Новым годом! Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/15: Рейтинг темы: голосов - 15, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 16.10.2010
Сообщений: 38
1

В заданном предложении указать слово, в котором доля буквы «а» максимальна.

03.02.2012, 06:55. Показов 3026. Ответов 16
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Помогите срочно решить пожалуйста

Добавлено через 42 секунды
1 В заданном предложении указать слово, в котором доля буквы «а» максимальна. Напечатать исходный текст, найденное слово и сколько раз буква «а» встречается в этом слове.
2. В заданном предложении на русском языке найти слово, в котором наибольшее количество гласных. Напечатать исходное предложение и найденное слово.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.02.2012, 06:55
Ответы с готовыми решениями:

В заданном предложении указать слово, в котором доля буквы «а» максимальна
Разработать программу решения задачи с использованием процедур и функций над строками и операций...

В заданном предложении указать слово, в котором доля гласных (A,E,I,O,U) максимальна
В заданном предложении указать слово, в котором доля гласных (A,E,I,O,U) максимальна. (Решить ...

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

Определить слово, в котором доля согласных максимальна
Для каждого слова в предложении указать долю согласных. Определить слово, в котором доля согласных...

16
660 / 530 / 137
Регистрация: 07.07.2011
Сообщений: 1,232
03.02.2012, 17:16 2
Сейчас скачаю delphi и попробую помочь.

Добавлено через 35 минут
Вот посмотри, писал в слепую так как нет Delphi, а скачать пока не могу, за работоспособность не отвечаю.
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
program name;
 
const
  ind = 100;
Var
  s : string;
  i, j, temp, temp_a, max_a, indmax_a  : integer;
  Word : array[0..ind] of string;
 
begin
  temp := 0;
  i := 0;
  Write('In your text: ');
  Read(s);
 
  for i := 0 to Length(s) do
  begin
    if (s[i] = ' ') then
    begin
      Word[i] := Copy(s,0,i-1);
      s := Copy(s,i-1,Length(s));
      Dec(temp);
    end;
  end;
 
  for i := 0 to temp do
    Begin
      for j := 0 to Length(word[i]) do
        begin
          if (Word[i][j] = 'a') then
            Dec(temp_a);
        end;
 
      if temp_a > max_a then
        Begin
          max_a := temp_a;
          indmax_a := j;
          temp_a := 0;
        end;
    end;
 
  Writeln('Max kol-Bo 6ykB "a" B cJIoBe: ', word[i]);
  Readln;
end.
Добавлено через 1 минуту
Ребят если у кого стоит Delphi попробуйте скомпилить будет работать?
Просто интересно ).
0
0 / 0 / 0
Регистрация: 16.10.2010
Сообщений: 38
04.02.2012, 14:40  [ТС] 3
можно как-то не через массив решить???
0
660 / 530 / 137
Регистрация: 07.07.2011
Сообщений: 1,232
04.02.2012, 14:55 4
Цитата Сообщение от AnkaInf Посмотреть сообщение
можно как-то не через массив решить???
Можеш попробовать так:
Ищет первое слово до пробела, потом находит кол-во букв 'a', записывает в переменную, далее в другом слове ишет кол-во букв 'a' и если их больше чем до этого то перезаписывает переменную.
0
60 / 60 / 9
Регистрация: 04.02.2012
Сообщений: 214
04.02.2012, 22:40 5
я так понимаю топикстартеру нужен код?
0
0 / 0 / 0
Регистрация: 16.10.2010
Сообщений: 38
06.02.2012, 11:03  [ТС] 6
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
procedure TForm1.Button1Click(Sender: TObject);
begin
str:=edit1.Text;
t:=0;
K:=0;
st:=' ';
for i:=1 to Length(str)  do
begin
while str[i]<> ' ' do
if str[i]='a' then
p:=p+str[i];
k:=k+1;
 begin
if k>t then
t:=k;
st:=p;
Label2.Caption:=p;
end;
 
end;
end;
end.
есть вот код примерной программы...но не идет(((

Добавлено через 2 минуты
Дмитрий3241 ,программа твоя не работает...не выводит слово
 Комментарий модератора 
Теги кода добавлены модератором. По правилам форума, код должен быть оформлен соответствующими тегами. Для оформления кода Delphi следует выделить этот код и на панели редактирования сообщения нажать кнопку: "DELPHI".
0
714 / 402 / 33
Регистрация: 04.10.2009
Сообщений: 1,686
06.02.2012, 11:31 7
Вот общее решение вашей задачи.
Поиск слова.rar
0
13107 / 5888 / 1707
Регистрация: 19.09.2009
Сообщений: 8,808
06.02.2012, 11:42 8
Решение второй задачи в консольном приложении.
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
86
87
program Project1;
 
{$APPTYPE CONSOLE}
 
uses
  SysUtils,
  Windows;
 
const
  //Множество разделителей слов.
  D = ['.', ',', ':', ';', '!', '?', '-', ' ', #9, #10, #13];
  //Множество гласных букв.
  Da = [
    //Русские гласные буквы.
    'а', 'я', 'о', 'ё', 'ы', 'и', 'э', 'е', 'у', 'ю',
    'А', 'Я', 'О', 'Ё', 'Ы', 'И', 'Э', 'Е', 'У', 'Ю',
    //Гласные буквы латиницы.
    'a', 'e', 'i', 'o', 'u', 'y',
    'A', 'E', 'I', 'O', 'U', 'Y'
  ];
  //Наибольшее количество слов, которое может быть записано в массив.
  M = 100;
var
  S : String;
  Arr : array[1..M] of String;
  i, j, Len, LenW, CntA, CntAMax : Integer;
begin
  //Переключение окна консоли на кодовую страницу CP1251 (Win-1251).
  //Если после переключения русские буквы показываются неверно,
  //следует открыть системное меню консольного окна - щелчком мыши в левом
  //верхнем углу окна консоли и выбрать:
  //Свойства - закладка "Шрифт" - выбрать шрифт: "Lucida Console".
  SetConsoleCP(1251);
  SetConsoleOutputCP(1251);
 
  repeat
    Writeln('Задайте текст:');
    Readln(S);
    //Наибольшее количество гласных букв в слове.
    CntAMax := 0;
    //Индекс элемента массива.
    j := 0;
    //Добавляем в массив слова с наибольшим количеством гласных букв.
    Len := Length(S);
    LenW := 0;
    CntA := 0;
    for i := 1 to Len do begin
      //Пропускаем разделители.
      if S[i] in D then Continue;
      //Уточняем длину слова.
      Inc(LenW);
      //Подсчёт количества гласных букв в пределах слова.
      if S[i] in Da then Inc(CntA);
      //Отслеживаем конец слова.
      if (i = Len) or (S[i + 1] in D) then begin
        if CntA > CntAMax then begin
          //Если найдено слово с бОльшим количеством гласных, чем текущее
          //наибольшее значение, то начинаем запись в массив заново (с начала массива).
          CntAMax := CntA;
          j := 1;
          Arr[j] := Copy(S, i - LenW + 1, LenW);
        end else if CntA = CntAMax then begin
          //Если найдено слово с количеством гласных, равным текущему наибольшему,
          //то записываем его в массив под очередным номером.
          Inc(j);
          Arr[j] := Copy(S, i - LenW + 1, LenW);
        end;
        //Сброс длины слова.
        LenW := 0;
        //Сброс счётчика согласных в слове.
        CntA := 0;
      end;
    end;
 
    //Теперь все искомые слова записаны в массив Arr.
    //Распечатываем эти слова.
    Writeln('Слова, содержащие наибольшее количество гласных букв:');
    for i := 1 to j do begin
      if i > 1 then Write(', ');
      Write(Arr[i]);
    end;
    Writeln;
 
    Writeln('Повторить - Enter. Выход - любой символ + Enter.');
    Readln(S);
  until S <> '';
end.
1
0 / 0 / 0
Регистрация: 16.10.2010
Сообщений: 38
06.02.2012, 14:40  [ТС] 9
Андрей Борисович,есть проблемка в программе...Когда вводишь слова,программа выдает первое слово с наименьшим количеством"а",хотя во втором слове букв "а" больше.....
0
714 / 402 / 33
Регистрация: 04.10.2009
Сообщений: 1,686
07.02.2012, 12:44 10
Починил
Поиск слова.rar
1
0 / 0 / 0
Регистрация: 16.10.2010
Сообщений: 38
08.02.2012, 08:18  [ТС] 11
Цитата Сообщение от Андрей Борисови Посмотреть сообщение
Спасибо большое!!!!!!=)

Добавлено через 18 часов 52 минуты
Цитата Сообщение от Андрей Борисови Посмотреть сообщение
Спасибо.....но на делфи , когда вбиваешь код все равно считает сколько букв только в 1-ом слове.....((((((((((((((
0
13107 / 5888 / 1707
Регистрация: 19.09.2009
Сообщений: 8,808
08.02.2012, 08:55 12
AnkaInf, код ищет первое слово с наибольшим количеством присутствий заданной буквы. Но условие задачи немного другое - надо искать слово с наибольшей долей заданной буквы.
В связи с этим, код Андрея Борисовича, с небольшими изменениями:
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
procedure TForm1.Button1Click(Sender: TObject);
var
  a,b,i : integer;
  d, max : Extended;
  str, temp : string;
  buk : Char;
begin
  str:=form1.Edit1.Text+' ';
  buk:=form1.Edit2.Text[1];
  a:=0;
  b:=0;
  max:=0;
  temp:='';
  i:=1;
  while i<length(str) do
    begin
      //  Набор слова из буковок
      if str[i]<>' ' then
        begin
          temp:=temp+str[i];
          //  Всего букв в слове.
          Inc(b);
          //  Подсчет кол-ва ключевых букв
          if str[i]=buk then Inc(a);
        end;
 
      //  Если пробел, т.е. слово набрано
      if (str[i]=' ') and (temp <> '') then
        begin
          //  Вычисляем долю.
          d := a/b;
          //  Если кол-во ключевых букв в слове
          //  больше всех предыдущих
          if max < d then
            begin
              form1.Edit3.Text:=temp;
              form1.Edit4.Text:=FloatToStr(d);
              max:=d;
            end;
          temp:='';
          a := 0;
          b := 0;
        end;
      i:=i+1;
    end;
end;
И на форме надо поменять заголовок для Label4: Label4.Caption := 'Наибольшая доля:'.
1
0 / 0 / 0
Регистрация: 16.10.2010
Сообщений: 38
08.02.2012, 11:01  [ТС] 13
Mawrat,все равно выводит только первое слово,хотя во втором доля букв "а" больше.....
0
13107 / 5888 / 1707
Регистрация: 19.09.2009
Сообщений: 8,808
08.02.2012, 11:22 14
AnkaInf, я проверил - всё отрабатывает верно. На всякий случай выкладываю проект. На скриншоте наибольшая доля букв "а" в третьем слове. И программа вывела данные именно по третьему слову. - Работает правильно.
Миниатюры
В заданном предложении указать слово, в котором доля буквы «а» максимальна.  
Вложения
Тип файла: rar Project1.rar (169.3 Кб, 21 просмотров)
0
0 / 0 / 0
Регистрация: 16.10.2010
Сообщений: 38
08.02.2012, 11:40  [ТС] 15
Mawrat,а вы пробывали в делфи набирать этот код???

Добавлено через 3 минуты
Ведь максимальная доля в том слове,где букв "а" должно быть больше чем в других словах...
0
13107 / 5888 / 1707
Регистрация: 19.09.2009
Сообщений: 8,808
08.02.2012, 11:46 16
Цитата Сообщение от AnkaInf Посмотреть сообщение
Ведь максимальная доля в том слове,где букв "а" должно быть больше чем в других словах...
Вовсе нет. Доля - это количество присутствий заданной буквы, разделённое на общее количество букв в слове.
Например:
"арматура" - доля = 3/8 = 0.375
"карета" - доля = 2/6 = 0.(3) //3 в периоде.
"арка" - доля = 2/4 = 0.5
"артель" - доля = 1/6 = 0.1(6) //6 в периоде.
Здесь наибольшая доля букв "а" в третьем слове - "арка" и равна эта доля 0.5.
1
0 / 0 / 0
Регистрация: 16.10.2010
Сообщений: 38
08.02.2012, 12:12  [ТС] 17
Mawrat,спасибо ,буду знать=)))
0
08.02.2012, 12:12
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.02.2012, 12:12
Помогаю со студенческими работами здесь

В заданном предложении поменять местами первое слово и самое длинное слово
Кто-нибудь, помогите решить задачи на Lazarus или Delphi! 1. В заданном предложении поменять...

В заданном предложении удалите каждое второе слово
type TForm1 = class(TForm) Edit1: TEdit; Edit2: TEdit; Button1: TButton; procedure...

Найти самое длинное симметричное слово в заданном предложении
Как в программе определяется симметричное слово или нет? sW2 := S + sW2; //Слово в обратном...

Найти самое длинное симметричное слово в заданном предложении
Помогите, ввожу симметричные слова, а мне постоянно выдаёт симметричных слов нет! unit Unit1; ...


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

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru