Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/14: Рейтинг темы: голосов - 14, средняя оценка - 4.71
0 / 0 / 0
Регистрация: 20.10.2009
Сообщений: 4

Строковые процедуры и функции

27.11.2009, 22:44. Показов 2649. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите Пожалуйста уже всю голову сломал в поиске решения(((
Задача такова:ввести в переменную предложение и вывести слова ,которые содержат букву а.(Без Использования массива).
1)ввожу строку;
2)Добавляю в начало и конец строки по пробелу(как я понял что бы потом было легче присваивать выделенные слова отдельной переменной ,в которой будет производиться работа с каждым словом по отдельности)
2)Делаю пробег этой строки поэлементно от 1 до длины переменной1.
3)Выделение из строки слова заключенные с обоих сторон пробелами, в отдельную переменную2
4)Делаю пробег выделенных слов от 1 до длины переменной2.
5)Если есть 'a' то очищаем переменную ,удаляем из первой переменной то слово ,которое мы выделяли и возвращаемся к началу цикла.
6)Если нет 'а' то выводим значение переменной2.
Моя проблема заключается в том ,что я не знаю как можно выделить слово заключенное с обеих сторон пробелами в переменную
Code
1
2
3
4
5
6
7
8
9
10
              ...
begin
readln(s);
s:=' '+s+' ';{ставим пробел перед первым слово и после последнего ,я так понял для того что бы не потерять первое и последнее слово}
for i:=1 to length(s) do 
begin
<выделение первого слово ограниченного двумя пробелами в отдельную переменную s2>
if pos('a',s2)>0 then 
writeln s2;
....
при следующем обходе цикла выделять между пробелами надо второе слово, для этого думаю надо удалить первое слово...
Помогите пожалуйста
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
27.11.2009, 22:44
Ответы с готовыми решениями:

Строковые процедуры
Написать программу, которая в каждом слове строки, содержащем заданный слог, первое вхождение этого слога переставляет в начало слова.

Строковые функции
дана строка. определить в строке самое длинное слово. если их несколько, вывести все имеющиеся

написать програмку (строковые функции)
Привет всем! Нужно написать программу: в строке введённой с клавиатуры подсчитать кол-во знаков ';' и заменить их на ':'. вот что я...

2
 Аватар для ALEXandrOFF
0 / 0 / 2
Регистрация: 07.05.2009
Сообщений: 9
27.11.2009, 23:43
Лучший ответ Сообщение было отмечено Boooze как решение

Решение

2 Boooze
Вот примерно так

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
const
   sim:set of char=['A'..'Z','a'..'z'];
var
   st,buf:string;
   i,j:integer;
begin
cls;
    writeln('Enter string');
    readln(st);
    writeln('Слова содержащие букву А(лат)');
    i:=1;
    repeat
       //пропускаем знаки препинания
       while not (st[i]in sim)and (i<=length(st))do
       inc(i);
       //  формируем слово
       buf:='';
       while st[i]in sim do
       begin
          buf:=buf+st[i];
          inc(i);
       end;
       // ищем в нем букву
       for j:=1 to length(buf)do
       begin
          if buf[j]='A' then
          writeln(buf);
       end;
       //
    until i>length(st);
end.
0
Retired
7727 / 2559 / 671
Регистрация: 17.10.2009
Сообщений: 5,100
28.11.2009, 03:52
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
const
  dividers=[',',' ','.','-','=',';',':','_','+','*','/'];{äîïèøåòå íóæíûå}
var
  temp,s:string;
  i,j:integer;
  fl:boolean;
begin
  readln(s);
  temp:='';
  writeln('Íàéäåííûå ñëîâà:');
  {âûäåëÿåì ñëîâà èç ïåðâîãî}
  for i:=1 to length(s) do
  begin
    if not (s[i] in dividers) then
      temp:=temp+s[i];
    if (s[i] in dividers) or (i=length(s)) then
    begin
      fl:=false;
      if temp<>'' then
        for j:=1 to length(temp) do
          if (temp[j]='a') or (temp[j]='A') then
            fl:=true;
      if fl then
        write(temp,' ');
      temp:=''
    end
  end;
  writeln
end.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
28.11.2009, 03:52
Помогаю со студенческими работами здесь

Процедуры и функции: решить через процедуры S=a*x+b*y+c*z.
Пожалуста помогите решить через процедуры S=a*x+b*y+c*z.

Процедуры и функции. Процедуры с числовыми параметрами
Описать процедуру RectPS (x1, y1, x2, y2, P, S), вычисляющую периметр P и площадь S прямоугольника со сторонами, параллельными осям...

Процедуры и функции: вычислить значения функции на заданном отрезке с заданным шагом
ребята, помогите, пожалуйста! Срочно нужна такая программка по выделенному варианту... у самой никак не получается( очень рассчитываю...

Нахождение значения функции с использованием процедуры или функции
Найти значение функции у, использовать не менее 1й подпрограммы функции или подпрограммы процедуры. Дано массив А, B,C-заданы,...

Найти значение функции, используя процедуры и функции
Помогите плз написать программу с помощью процедур и функций. Найти значение функции a*{a}^{-x}-b*cos(x)+c . Интервал вычисления ,...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга, Ты же видел моря и метели. Как сменялись короны и стяги, Как эпохи стрелою летели. - Этот мир — это крылья и горы, Снег и пламя, любовь и тревоги, И бескрайние. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru