Форум программистов, компьютерный форум, киберфорум
PascalABC.NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
0 / 0 / 0
Регистрация: 01.09.2020
Сообщений: 26

Вводится текст, конец ввода F1

09.09.2020, 09:25. Показов 1115. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Вводится текст, конец ввода F1. Заменить все пробелы на # и найти количество точек.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
09.09.2020, 09:25
Ответы с готовыми решениями:

Вводится текст. Конец ввода точка. Найти количество предложений
Вводится текст. Конец ввода точка. Найти количество предложений, предложения разделяются "!".

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

Вводится текст, конец ввода F1, подсчитать количество нечетных слов, начинающихся на букву k
ПОМОГИТЕ РЕШИТЬ ЗАДАЧУ! Вводится текст. Конец ввода F1. Подсчитать количество нечетных слов, начинающихся на букву k. Я смог только...

11
80 / 33 / 10
Регистрация: 14.06.2019
Сообщений: 516
09.09.2020, 14:53
Цитата Сообщение от Qwert84 Посмотреть сообщение
конец ввода F1
Так нельзя.
0
0 / 0 / 0
Регистрация: 01.09.2020
Сообщений: 26
09.09.2020, 17:11  [ТС]
пусть цифра 5
0
80 / 33 / 10
Регистрация: 14.06.2019
Сообщений: 516
09.09.2020, 17:30
Если я всё правильно понял - то так:
Pascal
1
2
3
4
5
6
7
8
9
10
11
begin
  var sb := new StringBuilder();
  var c: char;
  repeat
    c := ReadChar;
    sb.Append(c);
  until c = '5';
  var str := sb.ToString;
  str.Replace(' ', '#').Println;
  Write('Count of ".": ', str.Count(c -> c = '.'));
end.
0
 Аватар для Sun Serega
2355 / 1458 / 526
Регистрация: 07.04.2017
Сообщений: 4,798
09.09.2020, 18:38
Цитата Сообщение от ProMix0 Посмотреть сообщение
Так нельзя.
Можно, но программу придётся запускать по Shift+F9:
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
function ReadStringUntilKey(end_key: System.ConsoleKey): string;
begin
  var res := new StringBuilder;
  
  while true do
  begin
    var key := Console.ReadKey;
    if key.Key = end_key then break;
    res += key.KeyChar;
  end;
  Println;
  
  Result := res.ToString;
end;
 
begin
  var text := ReadStringUntilKey(System.ConsoleKey.F1);
  
  'Кол-во точек:'.Print;
  text.Count(ch->ch='.').Println;
  
  text.Replace(' ', '#').Println;
  
  Readln;
end.
Ну и тут некоторые фичи не будут работать адекватно. К примеру чтоб стирать символы - надо по особому обрабатывать System.ConsoleKey.Backspace.
2
Модератор
10445 / 5737 / 3406
Регистрация: 17.08.2012
Сообщений: 17,451
09.09.2020, 20:05
Полагаю, это задание таскают из задачника с незапамятных времён, когда типа string в паскале ещё не было, а с консолью работали как с двумя файлами последовательного доступа. Посимвольный ввод. И, если у (физической) консоли не был включен эхо-режим, то, как правило, требовалось после ввода символа с клавиатуры выводить его на дисплей. Естественно, можно было прекратить ввод по коду любого символа. Это можно делать и сейчас, в модуле CRT эта возможность оставлена.

Для любого паскаля, кроме Pascal ABC.NET:
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
32
33
uses
  crt;
var
  t, c: char;
  s: string;
  i, k: integer;
begin
  writeln('Введите текст');
  repeat
    c := readkey;
    write(c);
    if c <> #0 then
      begin
        s := s + c;
        t := #1;
      end
    else
      begin
        t := c;
        c := readkey;
        if c <> #59 then s := s + t + c
      end;
  until (t = #0) and (c = #59); // #0#59 генерируется клавиатурой при нажатии F1
  writeln;
  for i := 1 to length(s) do
    if s[i] = ' ' then s[i] := '#'
    else
      if s[i] = '.' then inc(k);
  writeln('Преобразованный текст:');
  writeln(s);
  writeln('Количество точек: ', k);
  readln
end.
В Pascal ABC.NET модуль CRT не предусмотрен (типа, устарел), и для работы с консолью используется класс System.Console. Насколько я знаю, System.Console делает далеко не всё, что может CRT, и вряд ли получится перевести мою программу на Pascal ABC.NET. Хотя, кто его знает... Я Pascal ABC.NET знаю очень плохо.

Добавлено через 3 минуты
Вот что бывает, когда не обновляешь вкладку браузера перед отправкой сообщения...
0
 Аватар для Sun Serega
2355 / 1458 / 526
Регистрация: 07.04.2017
Сообщений: 4,798
09.09.2020, 21:30
Цитата Сообщение от Cyborg Drone Посмотреть сообщение
Насколько я знаю, System.Console делает далеко не всё, что может CRT
Наоборот, CRT это огрызок от System.Console.

CRT реализует только основные старые вещи (и некоторые не полностью), в то время как System.Console даёт доступ и к современным примитивам работы с консолью.

Вообще есть несколько низкоуровневых функций работы с частями консоли (как подмена буфера текущих символов целиком), которых нет в System.Console.
Но всё содержимое CRT реализовано через методы System.Console и дорабатывать его, типа как, табу. Поэтому он никогда не будет ничем кроме огрызка.
0
Модератор
10445 / 5737 / 3406
Регистрация: 17.08.2012
Сообщений: 17,451
09.09.2020, 22:00
Ну, какой ещё огрызок... Он же появился раньше System.Console, поэтому, по логике вещей, может быть чем угодно, но не огрызком от того, чего при его рождении не было и в проекте. С остальным, естественно, согласен. Я ничего не знаю про работу с консолью в Pascal ABC.NET в силу того, что мне это не было нужно. Вы - специалист, и, раз вы говорите, что CRT выглядит, мягко говоря, жалко по сравнению с System.Console, значит, так оно и есть.
0
 Аватар для Sun Serega
2355 / 1458 / 526
Регистрация: 07.04.2017
Сообщений: 4,798
09.09.2020, 23:52
Ну дык не путайте спецификацию и реализацию. CRT придумали раньше, но реализация появилась позже.
Реализация System.Console появилась раньше и живёт (дорабатывается) дольше чем реализация CRT в PascalABC.Net . И, это уже не важно в данной теме, но я сомневаюсь что в других паскалях в модуль с тем же именем совали на много больше чем GoToXY.
0
Модератор
10445 / 5737 / 3406
Регистрация: 17.08.2012
Сообщений: 17,451
10.09.2020, 07:09
Я имел ввиду модуль CRT вообще. Во всех паскалях, начиная с TP.

Насчёт реализации... Что появилось раньше, это ещё как посмотреть. Разработчики допустили ошибку: не сразу перенесли модуль CRT в новую версию своей программы. В Pascal ABC, насколько я знаю, не было system.console, а CRT был. Когда в Pasal ABC добавили .NET, то system.console появилось, поэтому модуль CRT решили упразднить. Но потом спохватились, и вернули этот клятый CRT. Для совместимости. Не одному мне неохота замусоривать мозги каким-то там .console.

И, кстати, вряд ли CRT будет как-то существенно дорабатываться: это же практический стандарт, поэтому незачем пихать в него всякую отсебятину. А вот насчёт system.console - не скажу. Может, оно тоже стандарт, но дорабатывать его, скорее всего, будут, поскольку разработчики при переносе методов из C# в PABC.NET вечно порождали какие-то глюки, которые потом долго не могли исправить.
0
 Аватар для Sun Serega
2355 / 1458 / 526
Регистрация: 07.04.2017
Сообщений: 4,798
10.09.2020, 07:42
Цитата Сообщение от Cyborg Drone Посмотреть сообщение
Не одному мне неохота замусоривать мозги каким-то там .console.
Вы как то странно понимаете совместимость. Она поддерживается не ради удовлетворения тех кому лень учится, а наоборот, для более простого перехода на новый стиль.
Благодаря ней можно прийти и в основном писать по-старому, но пробовать новые элементы по 1. Так проще научится писать по-новому, чем переучиваясь всему и сразу.

Цитата Сообщение от Cyborg Drone Посмотреть сообщение
дорабатывать его, скорее всего, будут, поскольку разработчики при переносе методов из C# в PABC.NET вечно порождали какие-то глюки
А отсюда поподробнее. И вы же понимаете что методы System.Console - это методы .Net и они "переносятся" в паскаль на сколько же, на сколько они переносятся в C#?
0
Модератор
10445 / 5737 / 3406
Регистрация: 17.08.2012
Сообщений: 17,451
10.09.2020, 08:14
Кто-то предпочитает какой-то определённый диалект какого-то языка, кто-то склонен выбирать сам язык в зависимости от поставленной задачи, кто-то использует нечто среднее. По мне, так Pascal ABC.NET - это, если можно так выразиться, слегка глючный перевод с C# на паскаль. Мне не нужны его совместимости и новшества, поскольку, если мне вздумается написать что-то ответственное для .NET, я буду использовать что угодно, поддерживающее платформу .NET, кроме Pascal ABC.NET.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
10.09.2020, 08:14
Помогаю со студенческими работами здесь

Вводится текст конец ввода F5. Определить количество предложений, в которых 3 слова
Вводится текст конец ввода F5. Определить количество предложений, в которых 3 слова. Слова разделяются пробелом, предложения - точкой

Задача №644. Вводится текст. Конец ввода точка. Найти количество букв «х»
Задача №644. Вводится текст. Конец ввода точка. Найти количество букв «х».

Вводится текст. Конец ввода точка. Найти количество букв слов, слова разделяются пробелом
Вводится текст. Конец ввода точка. Найти количество букв слов, слова разделяются пробелом.

Вводится текст. Конец ввода точка. Найти количество букв «Г» и "г"
Вводится текст. Конец ввода точка. Найти количество букв «Г» и &quot;г&quot;.

Вводится текст. Конец ввода точка. Найти количество предложений, предложения разделяются "!"
Вводится текст. Конец ввода точка. Найти количество предложений, предложения разделяются &quot;!&quot;. Составить блок-схему и написать...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
Программный отбор элементов справочника
Maks 21.03.2026
Установка программного отбора элементов справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит предопределенное значение перечислений. Процедура. . .
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru