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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.04.2009, 18:26   #1
aiktz
Форумчанин
 
Регистрация: 10.03.2009
Сообщений: 104
Сообщение задача на Паскале(Paskal)

Привет всем! Очень нужна ваша помощь при решении задачи.
1.Каждую закрывающую скобку ')', для которой нет парной открывающей '(', заменить на '?'. {Мне препод сказал, чтобы я сначала задала каждой скобке номер, а затем написала само условие задачи, я задала номера к скобкам, а вот с условием продбема..помогите..плиз}
Код:
program Nastya;
uses crt;
const n=50;
var
i,j,k:integer;
st:string;
at:array [1..n] of integer;
begin
st:='(ab(be)(be(ed)yy))';
i:=0;
j:=0;
for k:=1 to length (st) do
begin
if st[k]='(' then begin i:=i+1; at[k]:=i;  end else at[k]:=0;
if st[k]=')' then begin j:=j+1; at[k]:=j; end;
end;
writeln(st);
for k:=1 to length(st) do
write(at[k]);
readln;
end;

2.подсчитать кол-во слов в строке ' Сегодня третье апреля'.

Кто может сказать как сделать в программе Паскаль, чтобы буквы строки при проверке программы падали???????
aiktz вне форума Ответить с цитированием
Старый 03.04.2009, 18:28   #2
IT-man
АльTRUEи$т
Форумчанин
 
Аватар для IT-man
 
Регистрация: 19.03.2009
Сообщений: 784
По умолчанию

2
Код:
program stroka; 
 uses crt;
  var
   st:string;
   k,i,n:integer;
  begin
   clrscr;
    writeln ('Введите предложение');
    readln(st);
    n:=length(st);
     for i:=1 to n do
       begin
        if (st[i]=' ') or (st[i]=', ') or (st[i]='. ') then
         k:=k+1;
      end;
       writeln ('Количество слов в строке',k);
       readln;
end.
Цитата:
«Никто не войдет в Рай, имея хотя бы крупицу гордыни в своем сердце». «Аллах Красив и любит красоту. Гордыня означает отказ от истины и высокомерие»

Последний раз редактировалось IT-man; 03.04.2009 в 19:01.
IT-man вне форума Ответить с цитированием
Старый 03.04.2009, 18:34   #3
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Хм.. Зачем нумеровать скобки?

Код:
uses crt;
var
st : string;
i, len, k : integer;
begin
clrscr;
st:='(ab(be)))(be(ed)yy))';

writeln(st);
writeln;
len := length(st);
k := 0;
for i:=1 to len do
 begin
 if st[i]='(' then inc(k);
 if st[i]=')' then
   begin
   dec(k);
   if k<0 then
    begin
    st[i] := '?';
    inc(k);
    end;
   end;

 end;

writeln(st);

readln;
end.
Результат:
Код:
(ab(be)))(be(ed)yy))

(ab(be))?(be(ed)yy)?
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 03.04.2009, 18:56   #4
aiktz
Форумчанин
 
Регистрация: 10.03.2009
Сообщений: 104
По умолчанию

а фиг знает зачем нумеровать......ое наорал на меня и сказал чтобы сначал я пронумеровала(((
aiktz вне форума Ответить с цитированием
Старый 03.04.2009, 18:57   #5
aiktz
Форумчанин
 
Регистрация: 10.03.2009
Сообщений: 104
По умолчанию

а что такое inc(k) и dec(k)??
aiktz вне форума Ответить с цитированием
Старый 03.04.2009, 19:02   #6
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Цитата:
а что такое inc(k) и dec(k)??
Код:
inc(k)
аналогично
Код:
k := k + 1;
А dec(k) - k := k -1;

aiktz, просто как-то не вижу смысла этого делать.. Может, вы просто сначала сделали неверно, поэтому он так и сказал?

to IT-man
Ваш вариант не работает.
Введите, например, "(()))))))))". Да вообще любую строку.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 03.04.2009, 19:07   #7
IT-man
АльTRUEи$т
Форумчанин
 
Аватар для IT-man
 
Регистрация: 19.03.2009
Сообщений: 784
По умолчанию

to Sazary
не понял условия! стер!!!
Цитата:
«Никто не войдет в Рай, имея хотя бы крупицу гордыни в своем сердце». «Аллах Красив и любит красоту. Гордыня означает отказ от истины и высокомерие»
IT-man вне форума Ответить с цитированием
Старый 03.04.2009, 19:08   #8
aiktz
Форумчанин
 
Регистрация: 10.03.2009
Сообщений: 104
По умолчанию

да я его понять совсем не могу....мы сначала программу разобрали..он мне сказал тебе нужно через 2 массива сделать, чтобы пронумеровать скобки
aiktz вне форума Ответить с цитированием
Старый 03.04.2009, 19:10   #9
aiktz
Форумчанин
 
Регистрация: 10.03.2009
Сообщений: 104
По умолчанию

спасибо вам огромное!!!!!!!..а вы не подскажете как выведенную строку сдеать так, чтобы она либо двигалась либо по одной буковки начали падать?
aiktz вне форума Ответить с цитированием
Старый 03.04.2009, 19:12   #10
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

aiktz, это только усложнит программу.
Да и как он, интересно, хочет это через массивы делать.. А самое главное - зачем?
Хоть я и не знаю вашего преподавателя, но в данном случае он мыслит как-то нерационально. Имхо, конечно..

Цитата:
а вы не подскажете как выведенную строку сдеать так, чтобы она либо двигалась либо по одной буковки начали падать?
А куда двигалась? Или куда падала?

Ну вот такую процедуру посмотрите:
Код:
procedure fun(s : string);
var i : integer;
begin
for i:=1 to length(s) do
 begin
 write(s[i]);
 delay(100);
 end;
writeln;
end;
Вызываете так:
Код:
fun(<строка>);
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]

Последний раз редактировалось Sazary; 03.04.2009 в 19:15.
Sazary вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задача на Паскале Witaliy Помощь студентам 2 09.02.2009 17:56
ЗАдача на паскале xakkkkker Помощь студентам 1 05.11.2008 01:11
Задача на записи (Paskal) Paskal??? Помощь студентам 3 20.04.2008 21:40