С Новым годом! Форум программистов, компьютерный форум, киберфорум
Pascal ABC
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/8: Рейтинг темы: голосов - 8, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 27.06.2017
Сообщений: 12
1

Задачи по строкам

30.01.2018, 23:33. Показов 1537. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
1) дана строка символов, преобразовать её, удалив все последовательности символов "аб", вставить вместо пробелов двоеточие и определить если в ней хотя бы одна цифра.
2) Дана символьная строка содержащая цифры от 0 до 9, объединенные в слова, разделенные между собой одним или несколькими пробелами. рассматривая слова как числа определить самое маленькое число.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.01.2018, 23:33
Ответы с готовыми решениями:

Нужны задачи по строкам и по CASE
ХАЙ!)народ у меня такая просьба.мне нужны задачи по строкам(ЛЮБЫЕ) ,и еще какие нить задачки c...

Задачи по строкам из задачника Абрамяна - найти ошибки в коде
задача 1 uses PT4; var s:string; k,i:integer; begin Task('String41'); Readln(s); i:=1;...

Задачи по строкам
Привет всем. Помогите разобраться со строками. Никак не могу сделать 2 задачи: 1)Создать страницу...

Задачи по строкам. Решение желательно через string
1. Дана строка, состоящая из русских слов разделенных пробелами(одним или несколькими). Вывести...

2
3 / 3 / 1
Регистрация: 26.01.2016
Сообщений: 21
31.01.2018, 01:22 2
Лучший ответ Сообщение было отмечено ZX Spectrum-128 как решение

Решение

По первой программе. Можно сделать так:
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
var
  str: string;
  i: integer;
  f: boolean;
 
begin
  i := 1;
  readln(str);
  while i <= length(str) do
  begin
    if str[i] = ' ' then
      str[i] := ':';
    if str[i] in ['0'..'9'] then
      f := true;
    if str[i] = 'а' then
      if (length(str) > i) and (str[i + 1] = 'б') then
      begin
        delete(str, i, 2);
        i := i - 1;
      end; 
    i := i + 1;
  end;
  writeln(str);
  if f then
    write('есть цифры')
  else
    write('нет цифр');
end.
А можно так. Так короче и понятнее. Хотя не оптимально, наверное. Хотя если нужно оптимально, то и delete, наверное, использовать не стоит.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
var
str:string;
i:integer;
f:boolean;
begin
readln(str);
while pos('аб',str)<>0 do
  begin
    delete(str,pos('аб',str),2);
  end;
for i:=1 to length(str) do
  begin
    if str[i] = ' ' then
     str[i]:=':';
    if str[i] in ['0'..'9'] then
      f:=true;
  end;
writeln(str);
if f then
  write('есть цифры')
  else
  write('нет цифр');
end.
Вторая.
Как вариант:
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
var
  str, sub_s: string;
  i, len: integer;
  min: int64;
 
begin
  i := 1;
  min := maxint64;
  readln(str);
  len := length(str);
  while i <= len do
  begin
    if (str[i] >= '0') and (str[i] <= '9') then  // разбиваем строку на числа
    begin
      sub_s := sub_s + str[i];
      i := i + 1;
    end
      else
    begin
      if strtoint(sub_s) < min then
        min := strtoint(sub_s); //сохраняем минимальное число
      sub_s := '';
      while (i < len) and (str[i] = ' ') do //проходим все пробелы до следующего числа
        i := i + 1; 
    end;
  end;
  if str[len] <> ' ' then // на тот случай, если строка не заканчивается пробелом
    if strtoint(sub_s) < min then
        min := strtoint(sub_s);
  write(min);
 end.
int64 использовал, т.к. не понятно, какой длины могут быть числа
1
0 / 0 / 0
Регистрация: 27.06.2017
Сообщений: 12
31.01.2018, 01:35  [ТС] 3
Спасибо!)
0
31.01.2018, 01:35
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
31.01.2018, 01:35
Помогаю со студенческими работами здесь

Ввести по строкам с клавиатуры двумерный массив и вычислить сумму его элементов по строкам.
Написать программу, которая вводит по строкам с клавиатуры двумерный массив и вычисляет сумму его...

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

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

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


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

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