Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.11.2008, 22:16   #1
Unreall
Новичок
Джуниор
 
Регистрация: 10.11.2008
Сообщений: 1
По умолчанию Pascal программа в помощь

решил посмотреть программу в теме которую удалили, но из-за неглубоких знаний не могу сделать.

Суть задания - Задан текст. Определить, состоит ли он только из цифр и образуют ли цифры арифметическую прогрессию.


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

Код:
program qwer;
uses crt;
var st:string;
   k,v,l,i,y,x:integer;
begin
clrscr;
  writeln('vvedite stroky');
  readln(st);
  y:=length(st);
  l:=1;
  k:=0;
  for i:=1 to y do begin
    if st[i]=' ' then begin
      k:=k+1;
      st:=subst(i,k-1);
      for i:=1 to length(st2) begin
        if st2[i]>'0' and st2[i]<'9' then val(stk,n,i) else writeln('stroka sostoit ne tolbko iz chisel');
        readln;
  else begin  writeln('stroka tolbko iz chisel');
  readln;
  end;
end.
Нид хелп
Unreall вне форума Ответить с цитированием
Старый 11.11.2008, 22:59   #2
eoln
Старожил
 
Аватар для eoln
 
Регистрация: 26.04.2008
Сообщений: 2,645
По умолчанию

Код:
var
  mas: array[1..128] of integer;
  i, j, k, q, n: integer;
  s: string;
begin
  write('s = ');
  readln(s);
  s := s + ' ';
  n := 0;
  //удалим лишнии пробелы
  while pos('  ', s) > 0 do delete(s, pos('  ', s), 1);
  while s <> '' do
  begin
    k := pos(' ', s);
    inc(n);
    val(copy(s, 1, k - 1), mas[n], q);//выдёргиваем число из строки
    if q <> 0 then //если неудалось преобразовать в число
    begin
      writeln('Error');
      readln;
      exit
    end;
    delete(s, 1, k);
  end;
  if n = 1 then //одно число не образует последовательности
  begin
    writeln('Odno chislo');
    readln;
    exit
  end;
  k := mas[2] - mas[1];//разность прогрессии
  for i := 2 to n - 1 do if mas[i + 1] - mas[i] <> k then
  begin
    writeln('Net arifmeticheckoy posledovatel''nosti');
    readln;
    exit
  end;
  writeln('Est arifmeticheckaya posledovatel''nost''');
  readln
end.
eoln вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Тестовая программа в Turbo Pascal cL1zMa Помощь студентам 6 23.01.2012 20:41
Нужна помощь Pascal SweetOpium Помощь студентам 13 28.05.2008 18:11
Помощь во время экзамена [Pascal] Crazy Macho Фриланс 4 05.01.2008 13:23
Требуется программа на Turbo Pascal (за деньги) illspirit Фриланс 5 30.12.2007 23:12