Показать сообщение отдельно
Старый 27.06.2006, 15:11   #9
 
Аватар для Overlord
 
Статус: Старейшина
Регистрация: 27.03.2005
Адрес: Великая и могучая
Сообщений: 732
СПАСИБО: 49
сказали Спасибо 293 раз(а) в 169 сообщении
Получено наград:
По умолчанию Re: Решебник (turbo pascal, Delphi)

Цитата:
Сообщение от moyadres1 Посмотреть сообщение
Помогите написать программу, позволяющую ввести строку, состоящую только из цифр и букв. Распечатать те группы цифр, в которых цифра 7 встречается не более двух раз.

Заранее спасибо всем за помощь.

Мне надо на Паскале..

тогда вот
Код:
program Project2;

{$APPTYPE CONSOLE}

uses
  SysUtils;

function ValidStr(s:string):boolean;
var i:integer;
begin
  ValidStr:=true;
  for i:=1 to length(S) do
    if (S[i]<'0')or(S[i]>'z') then 
//тут придется самому менять условие я не помню в каком порядке символы располагаются. 
//Сейчас написано для спучая 0 - 9 -  A - z, т.е. предположительно между 0 и z нет ненужных символов
      begin
        ValidStr:=false;
        writeln('Ne podhodit');
        break;
      end;
end;

function CountInt(s:string):integer;
var i:integer;
begin
  result:=0;
  if length(s)=0 then exit;
  for i:=1 to length(S) do
    if S[i]='7' then result:=result + 1;
end;

var S, subS:string;
    i:integer;
begin
  repeat
    write('?S = ');
    readln(S);
  until ValidStr(S);
  //пока не введена правильная строка повторяем цикл
  i:=1;

//проходим по каждому символу в строке
  repeat
    subS:='';
    while (i<=length(S))and(S[i]>='0')and(S[i]<='9') do
    begin
      subS:=subS + S[i];//формируем подстроки состоящие из цифр
      i:=i+1;
    end;
    if (CountInt(subS)<=2)and(length(subS)<>0) then writeln(subS);
//Если не пустая строка и в ней не больше двух семерок то выводим на экран
    i:=i+1;
  until i>length(S);
  
  readln;
end.


[Ссылки могут видеть только зарегистрированные пользователи. ]

Последний раз редактировалось 4айник; 15.12.2008 в 13:03.
Overlord вне форума   ЦИТИРОВАТЬ
Этот пользователь сказал Спасибо Overlord за это полезное сообщение: