Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RFpro.ru: Программирование на языке Pascal


РАССЫЛКИ ПОРТАЛА RFPRO.RU

Лучшие эксперты по данной тематике

Асмик Гаряка
Статус: Советник
Рейтинг: 11034
∙ повысить рейтинг »
Орловский Дмитрий
Статус: Мастер-Эксперт
Рейтинг: 7020
∙ повысить рейтинг »
lamed
Статус: Академик
Рейтинг: 4895
∙ повысить рейтинг »

/ КОМПЬЮТЕРЫ И СОФТ / Программирование / Pascal (Паскаль)

Номер выпуска:1269
Дата выхода:16.10.2015, 15:21
Администратор рассылки:F®ost (Администратор)
Подписчиков / экспертов:11 / 12
Вопросов / ответов:3 / 5

Консультация # 181610: Здравствуйте, уважаемые эксперты! Прошу Вас ответить на следующий вопрос: Если в тексте нет символа *, то оставить этот текст без изменения, иначе каждую из малых латинских букв, предшествующих первому вхождению символа *, заменить на цифру 3....


Консультация # 134361: Уважаемые эксперты, я снова прошу вас о помощи. Я не уверен в своем способе ввода печатающего текста, смотрите я делаю так delay(65000); write(a); delay(65000); write(b); ну и типо того. Когда же следует вводить длинный текст это стает чуть нудно... Возможно ли в этом случае поступить иначе? Ой. еще чуть не забыл, возможно ли прикреплятькартинк...
Консультация # 14745: Уважаемые эксперты помогите! нужно составить программу на Turbo Pascal. Вот условие: Дан список, содержащий не менее 10 записей, каждая из которых имеет структуру: Ф.И.О. |Домашний адрес | Номер участка | Год рождения | ---------- |---------------|---------------|--------------| тип строка | тип строка | тип integer | 1900-2000...

Консультация # 181610:

Здравствуйте, уважаемые эксперты! Прошу Вас ответить на следующий вопрос:
Если в тексте нет символа *, то оставить этот текст без
изменения, иначе каждую из малых латинских букв,
предшествующих первому вхождению символа *, заменить на
цифру 3.

Дата отправки: 25.12.2010, 20:53
Вопрос задал: Анна
Всего ответов: 2
Страница онлайн-консультации »


Консультирует lamed (Академик):

Здравствуйте, Анна! ABC-Pascal.

Код :
program p181610;
{ Если в тексте нет символа *, то оставить этот текст без 
изменения, иначе каждую из малых латинских букв, 
предшествующих первому вхождению символа *, заменить на 
цифру 3. }
{ Допущения. Будем считать текстом строку, так как иное не сказано }
var
  s: string; { Строка текста }
  i: integer; { Счетчик, текущая позиция символа в строке }
  len: integer; { Длина строки }
begin  
  { Читаем строку }
  readln(s);
  i:= 1;
  len := length(s);

  { Проходим до конца строки или до первого вхождения символа '*' }
  while (s[i]<>'*') and (i<=len) do
    i:= i+1;

  { Если символ найден, производим замены }
  if (i<=len) then { позиция за первым вхождением символа '*' }
    begin
	  i:= i-1;
	  while (i>=1) do
	  { справа налево, чтоб не вводить лишнюю переменную }
      begin
        if s[i] in ['a'..'z'] then { каждую из малых латинских букв }
          s[i] := '3';
        i:= i-1;
      end;
	end;
    
  { Печатаем строку }
  writeln(s);
end.
Примеры работы
Код :
qwerty*qwety*qw*
333333*qwety*qw*
Код :
123123цукйкйtyutryutru
123123цукйкйtyutryutru
Код :
*
*

Консультировал: lamed (Академик)
Дата отправки: 25.12.2010, 21:41
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует Юдин Евгений Сергеевич:

Здравствуйте, Анна!

Вот немного видоизмененная программа эксперта Борисыч!

Все предельно ясно - коллега оставил замечательные комментарии.
Оформляю ответ с немного измененными строками!

Выполнил также на ABC pascal

Код :
program p181610;
{ Модернизированная версия программы }
var
  s: string; { Строка }
  sm:string[1]; {Символ}
  i: integer; 
  len: integer; { Длина строки }
begin
  write('Press input str ');
  readln(s);
  write('Press symbol ');
  readln(sm);
  i:= 1;
  len := length(s);
  i:=Pos(sm,s);
  if (i<=len) then {идем по строке с позиции, предшествующей первому вхождению символа sm}
    begin
        i:= i-1;
        while (i>=1) do
         begin
          if s[i] in ['a'..'z'] then 
            s[i] := '3';
         i:= i-1;
         end;
    end;
  writeln(s); {Вывод результата на экран}
end.


Удачи разобраться! smile

Консультировал: Юдин Евгений Сергеевич
Дата отправки: 26.12.2010, 09:06
Рейтинг ответа:

НЕ одобряю 0 одобряю!

Консультация # 134361:

Уважаемые эксперты, я снова прошу вас о помощи. Я не уверен в своем способе ввода печатающего текста, смотрите я делаю так delay(65000);
write(a); delay(65000); write(b); ну и типо того. Когда же следует вводить длинный текст это стает чуть нудно... Возможно ли в этом случае поступить иначе? Ой. еще чуть не забыл, возможно ли прикреплятькартинки к программе, например после какой то функции появляется картинка.... или можно воспроизводить ноты не через внутренний динамик а через колонки.. Заранее благодарен.

Дата отправки: 27.04.2008, 14:15
Вопрос задал: Пашков Дмитрий Владимирович
Всего ответов: 1
Страница онлайн-консультации »


Консультирует Евчик Сергей Александрович:

Здравствуйте, Пашков Дмитрий Владимирович! Можно поступить следующим образом:
s:=\'Ваш текст\';
for i:=1 to length(s) do
begin
Write(s[i]);
Delay(65000);
end;
Насчет картинки: Возможно все но есть несколько НО: в паскале 16 цветов а для картинок этого явно недостаточно (хотя не мне судить). Теоретически можно попробовать вывести картинку но тогда придется использовать Assembler и программа может приобретать несколько большие размеры. Или рисовать картинку самому используя модуль graph.
Насчет колонок не знаю не интересовался. Но когда-то я слышал про плейеры написанные на паскале.

Консультировал: Евчик Сергей Александрович
Дата отправки: 27.04.2008, 19:50
Рейтинг ответа:

НЕ одобряю 0 одобряю!

Консультация # 14745:

Уважаемые эксперты помогите! нужно составить программу на Turbo Pascal. Вот условие:
Дан список, содержащий не менее 10 записей, каждая из которых имеет структуру:
Ф.И.О. |Домашний адрес | Номер участка | Год рождения |
---------- |---------------|---------------|--------------|
тип строка | тип строка | тип integer | 1900-2000 |
15 символов| 20 символов | | |
Разработать программу, выполняющую следующие функции: 1)ввод данного списка в массив записей; 2)вывод массива записей на экран; 3)поиск всех граждан из списка, родившихся до 1980 года и номером участка не более 100 с выводом найденных записей на экран.

Дата отправки: 01.01.2004, 00:01
Вопрос задал: KENT
Всего ответов: 2
Страница онлайн-консультации »


Консультирует Strory:

Доброе время суток, KENT!
Ну и? Определяемся с типом:
type
  TList = record
    FIO: String[15];
    Adress: String[20];
    Numb: integer;
    Year: 1900..2000;
  end;
var
  List: array [1..100] of TList;
По пунктам 1 и 2 не вижу никаких трудностей. По второму пункту:
  if (List[i].Year < 1980) and (List[i].Numb <= 100) then выводим;

Так где ещё проблемы? ;)

Консультировал: Strory
Дата отправки: 01.01.2004, 00:01
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует Вадим Исаев ака sir Henry (Старший модератор):

Приветствую Вас, KENT!
Дык составляйте, ктоВам мешает?. Если возникнут трудности при составлении, будте добры описать ИХ СИМПТОМЫ, а не слать условия задачи. По условию задачи выходит, что Вы просто сами не хотите ничего делать.

Консультировал: Вадим Исаев ака sir Henry (Старший модератор)
Дата отправки: 01.01.2004, 00:01
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Оценить выпуск | Задать вопрос экспертам

главная страница  |  стать участником  |  получить консультацию
техническая поддержка  |  восстановить логин/пароль

Дорогой читатель!
Команда портала RFPRO.RU благодарит Вас за то, что Вы пользуетесь нашими услугами. Вы только что прочли очередной выпуск рассылки. Мы старались. Пожалуйста, оцените его. Если совет помог Вам, если Вам понравился ответ, Вы можете поблагодарить автора - для этого в каждом ответе есть специальные ссылки. Вы можете оставить отзыв о работе портале. Нам очень важно знать Ваше мнение. Вы можете поближе познакомиться с жизнью портала, посетив наш форум, почитав журнал, который издают наши эксперты. Если у Вас есть желание помочь людям, поделиться своими знаниями, Вы можете зарегистрироваться экспертом. Заходите - у нас интересно!
МЫ РАБОТАЕМ ДЛЯ ВАС!


В избранное