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

Задачки на строки

13.11.2013, 20:58. Показов 1606. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Проверьте,в чём ошибка и как исправить?
УСЛОВИЕ:
Выясните, имеются ли в строке S два соседствующих одинаковых символа.
Формат входных данных
Во входном файле дана строка S. Строка S состоит из букв латинского алфавита, непустая и её длина не превышает 100 символов.
Формат выходных данных
Выведите YES в случае положительного ответа, или NO в противном случае.
РЕШЕНИЕ:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
var s:array [1..100] of char; i,k:integer;   f,g:text;
begin
assign(f,'input.txt');
assign(g,'output.txt');
reset(f);
rewrite(g);
 
readln(f,s);
k:=0;
for i:=1 to length(s)-1 do
s[i]:=s[i+1];
k:=1;
if k>0 then writeln(g,'yes') else writeln(g,'no');
end.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
13.11.2013, 20:58
Ответы с готовыми решениями:

Задачки на строки
Помогите с задачками плиз 1. keepLast :: Int -> -> сохраняет последние элементы строки, допустим 3 “qwerty” = “rty” в...

Задачки на строки и файлы
Помогите пожалуйста решить 3 задачки: 1. Удалить из строки все кратные рядом стоящие одинаковые символы, оставив по одному 2. Вывести...

3 задачки по теме строки
1.Распечатать в порядке, обратном алфавитному, вес буквы, которые входят в текст не менее трех раз. 2.Вывести число повторений введенной...

8
2022 / 1621 / 489
Регистрация: 31.05.2009
Сообщений: 3,005
14.11.2013, 02:55
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
var f: Text;
    s: String[100];
    i: Integer;
begin
  Assign(f, 'input.txt');
  Reset(f);  
  ReadLn(f, s);
  Close(f);
    
  i:= 2;
  while((i <= Length(s)) and (s[i-1] <> s[i])) do
    Inc(i);
    
  Assign(f, 'output.txt');
  Rewrite(f);  
  if i > Length(s) then
    WriteLn(f, 'no')
  else
    WriteLn(f, 'yes');    
  Close(f)
end.
1
0 / 0 / 2
Регистрация: 19.10.2013
Сообщений: 58
14.11.2013, 16:25  [ТС]
Цитата Сообщение от rangerx Посмотреть сообщение
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
var f: Text;
    s: String[100];
    i: Integer;
begin
  Assign(f, 'input.txt');
  Reset(f);  
  ReadLn(f, s);
  Close(f);
    
  i:= 2;
  while((i <= Length(s)) and (s[i-1] <> s[i])) do
    Inc(i);
    
  Assign(f, 'output.txt');
  Rewrite(f);  
  if i > Length(s) then
    WriteLn(f, 'no')
  else
    WriteLn(f, 'yes');    
  Close(f)
end.
спасибо))можешь теперь если тебе не трудно поэтапно разъяснить,что да как??))чтобы я понял сам процесс решения,а то у меня с этими строками проблемы
0
 Аватар для APALoff
1648 / 1077 / 1081
Регистрация: 03.07.2013
Сообщений: 4,507
14.11.2013, 16:29
Цитата Сообщение от Federiko Посмотреть сообщение
а то у меня с этими строками проблемы
Если в отличие от строк у Вас с массивами все "Ок", то рассматривайте стоку как массив и обращайтесь к элементам строки как к массиву - s[i]=...
0
0 / 0 / 2
Регистрация: 19.10.2013
Сообщений: 58
14.11.2013, 16:55  [ТС]
Цитата Сообщение от APALoff Посмотреть сообщение
Если в отличие от строк у Вас с массивами все "Ок", то рассматривайте стоку как массив и обращайтесь к элементам строки как к массиву - s[i]=...
с массивами тоже не очень))но я бы хотел именно решение этой задачи разобрать))был бы очень благодарен
0
2022 / 1621 / 489
Регистрация: 31.05.2009
Сообщений: 3,005
14.11.2013, 17:36
Цитата Сообщение от Federiko Посмотреть сообщение
s: String[100];
Это у нас строка максимальный размер которой составляет 100 символов(может быть меньше, но не больше). В остальном всё как и с простым массивом: s[1] - первый элемент, s[2] - второй, и т.д.
Цитата Сообщение от Federiko Посмотреть сообщение
i:= 2;
while((i <= Length(s)) and (s[i-1] <> s[i])) do
Inc(i);
Данный цикл будет крутится пока выполняются оба условия, т.е. i <= Length(s) и s[i-1] <> s[i]. Первое отвечает за контроль выхода индексной переменной(i) за пределы длины строки, второе за сравнение на неравенство рядом стоящих элементов. Если хоть одно из условий нарушится, цикл завершится. Если нарушится первое(т.е. стало истинным условие i > Length(s)), значит удалось дойти до конца строки не встретив ни одной пары, которая бы нарушила второе условие s[i-1] <> s[i]. Если же нарушится второе(т.е. стало истинным условие s[i-1] = s[i]), значит два соседствующих одинаковых символа были найдены. Вот собственно и всё.
1
0 / 0 / 2
Регистрация: 19.10.2013
Сообщений: 58
14.11.2013, 17:46  [ТС]
Цитата Сообщение от rangerx Посмотреть сообщение
Это у нас строка максимальный размер которой составляет 100 символов(может быть меньше, но не больше). В остальном всё как и с простым массивом: s[1] - первый элемент, s[2] - второй, и т.д.

Данный цикл будет крутится пока выполняются оба условия, т.е. i <= Length(s) и s[i-1] <> s[i]. Первое отвечает за контроль выхода индексной переменной(i) за пределы длины строки, второе за сравнение на неравенство рядом стоящих элементов. Если хоть одно из условий нарушится, цикл завершится. Если нарушится первое(т.е. стало истинным условие i > Length(s)), значит удалось дойти до конца строки не встретив ни одной пары, которая бы нарушила второе условие s[i-1] <> s[i]. Если же нарушится второе(т.е. стало истинным условие s[i-1] = s[i]), значит два соседствующих одинаковых символа были найдены. Вот собственно и всё.
про циклы я понимаю,я не понимаю почему I:=2,почему i<=length и откуда взялось s[i-1]<>s[i],почему i увеличивается на 1??
0
 Аватар для APALoff
1648 / 1077 / 1081
Регистрация: 03.07.2013
Сообщений: 4,507
14.11.2013, 17:55
Цитата Сообщение от Federiko Посмотреть сообщение
про циклы я понимаю,я не понимаю почему I:=2,почему i<=length и откуда взялось s[i-1]<>s[i],почему i увеличивается на 1??
Это все очень печально...
http://www.cyberguru.ru/programming/pascal/
0
2022 / 1621 / 489
Регистрация: 31.05.2009
Сообщений: 3,005
14.11.2013, 20:44
Цитата Сообщение от Federiko Посмотреть сообщение
я не понимаю почему I:=2,почему i<=length и откуда взялось s[i-1]<>s[i],почему i увеличивается на 1??
Вам нужно начать с задач попроще и развивать алгоритмическое мышление. Ответ на все эти вопросы я уже дал в предыдущем сообщении. Попробуйте, для начала, используя while элементарно вывести все символы введённой с клавиатуры строки на экран, c первого по последний. Если справитесь с этой задачей, то половина вопросов отпадёт сама собой.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
14.11.2013, 20:44
Помогаю со студенческими работами здесь

Три задачки на строки.
1)В ведённой строке удвойте вхождение каждой буквы, кроме буквы Б 2)Дана строка найти все слова длиннее 9 букв и вывести на экран все эти...

4 задачки ТВ
помогите решить эти 4 задачки, у меня что-то не получается

Задачки
1. Положение городов А и В заданное координатами А (х1; у1), В (х2; у2). Определите расстояние между городами и время, необходимое для...

задачки на С
Задача 21. Дано натуральное число N. Выяснить, есть ли среди чисел i3 -17*i*N2+N3 (i=l,2,. . . ,N) хотя бы одно число, кратное двум и...

задачки
Помогите плиз с задачками! 1. если в масиве есть хотя бы одна пара одинаковых соседних элементов, то напечатать все елементы, следующие...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а привычная функция main(). . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru