В паскале не рублю - Форум
Пятница, 09.12.2016, 16:27
Задачи по информатике
Главная | Регистрация | Вход Приветствую Вас Гость | RSS
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 1 из 11
Модератор форума: ignorer, KOT_B_MEIIIKE, PASCAL26, atvrider 
Форум » Решение задач по информатике » Задачи по программированию + блок-схемы » В паскале не рублю (помощи очень надо до сессии 3 дня (((( и 3 задачки)
В паскале не рублю
VolnyiДата: Пятница, 17.04.2009, 22:19 | Сообщение # 1
Рядовой
Группа: Новичок
Сообщений: 1
[ 0 ]
Статус: Offline
Задачи осталось две. Помогли. Пожалуйста нужно второю очень непонятно как скобки раскрыть.

2. Даны два многочлена, заданные массивами своих коэффициентов. Получить произведение многочленов (массив коэффициентов) (пример на рисунке)

3. Исходный текст вводится пользователем с экрана в виде одной или нескольких строк. На экране необходимо сохранить протокол работы: исходный и преобразованный текст. В исходном тексте выделить цветом заданные фрагменты. Определить, является ли строка текста палиндромом, т.е. читаемой в прямом и обратном направлении (например, строка «А роза упала на лапу Азора» - палиндром). При проверке строки убрать из нее все знаки препинания.

это наработка

Code
program task03;
  uses WinCRT;
    var Str: string;
    function IsPalindrom(instr:string):boolean;
    const trash : set of char = [' ','.',',','!','?'];
    var left:string;
    i,Len:integer;
    ch:char;

    Pal:boolean;
    begin
    Pal := true;
    left:='';
    for i:=1 to Length(instr) do
    begin
    ch := instr[i];
    if ch in trash then else
       begin
       left:=left+Upcase(ch);
       end;
    end;
    Len := Length(left);
    for i:=Len downto 1 do
    begin
    if left[i]<>left[Len-i+1] then
       Pal := false;
    end;
   IsPalindrom := Pal;
   end;

   Begin
   write('Enter string:');read(Str);
   if IsPalindrom(Str) then
   writeln('Eto palindrom')
   else
   writeln('Eto fignya kakaya-to');
   End.

Вопрос 1-й как сделать чтобы прога понимала русский.
Мне посоветовали

Code
function UpCaseRus(ch:char):char;
begin
case ch of
  'а':UpCaseRus:='A';
  'б':UpCaseRus:='Б';

...

'я':UpcaseRus:='Я';
end;
end;

Скажите плиз, в какое место кода это вставить.

Вопрос №2 - Нужно чтобы появлялся Конечный результат (то есть я вижу первоначальный текст, а ниже появляется результат) в цвете если палиндром (само предложение) или фраза "нет палиндромов".

Вопрос №3 Нужна возможность ввода 3 -4 или n-го кол-ва строк сразу. и чтобы прога обрабатывала эти строки отдельно (1, 2 ,3 строка... и т.д.).

Добавлено (17.04.2009, 22:19)
---------------------------------------------

Code
    program task03;
   uses WinCRT;

   const MaxN=50;
   var
   n:integer;
   A:array[1..MaxN+1] of string;
    function IsPalindrom(instr:string):boolean;
    const trash : set of char = [' ','.',',','!','?'];
    var left:string;
    i,Len:integer;
    ch:char;

    Pal:boolean;
    begin
    Pal := true;
    left:='';
    for i:=1 to Length(instr) do
    begin
    ch := instr[i];
    if ch in trash then else
       begin
       left:=left+Upcase(ch);
       end;
    end;
    Len := Length(left);
    for i:=Len downto 1 do
    begin
    if left[i]<>left[Len-i+1] then
       Pal := false;
    end;
   IsPalindrom := Pal;
   end;

   Begin
    n:=0;
writeln('Введите текст. После последней строки повторно нажмите ENTER');
repeat
inc(n);
repeat
readln(A[n]);
until (n>1) or (A[n]<>'');
until (A[n]='') or (n=MaxN);
dec(n);

   if IsPalindrom(A[n])
   then
   writeln('Это палиндром');
   else
   writeln('Это не палиндром');

   End.

Вот что вышло.
1. не обрабатывает Фразы - палиндромы
2. Выводит результат только для последней из фраз. - надо чтобы для каждой.

Сообщение отредактировал Volnyi - Пятница, 17.04.2009, 20:44
 
Форум » Решение задач по информатике » Задачи по программированию + блок-схемы » В паскале не рублю (помощи очень надо до сессии 3 дня (((( и 3 задачки)
Страница 1 из 11
Поиск:

Copyright MyCorp © 2016