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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 18.04.2011, 18:26   #1
eragon_ua
Пользователь
 
Регистрация: 08.03.2011
Сообщений: 25
По умолчанию Ввести из клавиатуры слово и распечатать символы, которые встречаются более одного раза.

Помогите пожалуйста переделать проги


1.Ввести из клавиатуры слово и распечатать символы, которые встречаются более одного раза(с использованием символьной функции)
2.Если в заданном массиве С(12) количество положительных элементов меньше количества отрицательных элементов, то переменной t присвоить значение TRUE, иначе - значення False.(с использованием логической функции)

1.
Код:
program Project1;
 
var
  S : String;
  Arr : array[#0..#255] of Integer;
  Ch : Char;
  i, Len : Integer;
begin
  repeat
    Writeln('Задайте строку:');
    Readln(S);
 
    //Обнуляем элементы массива.
    for Ch := #0 to #255 do Arr[Ch] := 0;
 
    //Анализируем строку.
    Len := Length(S);
    for i := 1 to Len do Inc(Arr[S[i]]);
 
    //Формируем строку результата.
    S := '';
    for Ch := #0 to #255 do begin
      if Arr[Ch] > 1 then begin
        if S <> '' then S := S + ', ';
        S := S + Ch;
      end;
    end;
 
    //Ответ.
    if S <> '' then begin
      Writeln('Список символов, которые встречаются в тексте более одного раза:');
      Writeln(S);
    end else begin
      Writeln('Нет ни одного символа, который встречался бы в тексте более одного раза.');
    end;
 
    Writeln('Повторить - Enter. Выход - любой символ + Enter.');
    Readln(S);
  until S <> '';
end.

2.
Код:
program Project1;
 
const
  N = 10;
var
  Arr : array[1..N] of Integer;
  i, Cnt : Integer;
  S : String;
begin
  repeat
    //Заполняем массив случайными числами и распечатываем его.
    Writeln('Исходный массив:');
    Randomize;
    for i := 1 to N do begin
      Arr[i] := -5 + Random(11); //-5..+5.
      if i > 1 then Write(', ');
      Write(Arr[i]);
    end;
    Writeln;
 
    //Решение задачи.
    Cnt := 0;
    for i := 1 to N do begin
      if Arr[i] > 0 then Inc(Cnt)
      else Dec(Cnt);
    end;
 
    //Ответ.
    Writeln('Ответ:');
    if Cnt < 0 then
      Writeln('TRUE')
    else
      Writeln('FALSE')
    ;
 
    Writeln('Повторить - Enter. Выход - любой символ + Enter.');
    Readln(S);
  until S <> '';
end.

У меня возникли проблемы с тем, что бы эти задание сделать с использование функций.
Помогите исправить. Вот то, на чем остановился :

1.
Код:
Program project;
 
type  arr=array[#0..#255] of Integer;
var S : String;
    Ch : Char;
    i, Len : Integer;
    
(=============================)
 
function T (
      for Ch := #0 to #255 do Arr[Ch] := 0;
      Len := Length(S);
      for i := 1 to Len do Inc(Arr[S[i]]);
      S := '';
    for Ch := #0 to #255 do begin
      if Arr[Ch] > 1 then begin
        if S <> '' then S := S + ', ';
        S := S + Ch;
      end;
    end;
    
(=============================)
Begin
 Writeln('Задайте строку:');
    Readln(S);
    
  if S <> '' then begin
      Writeln('Список символов, которые встречаются в тексте более одного раза:');
      Writeln(S);
    end else begin
      Writeln('Нет ни одного символа, который встречался бы в тексте более одного раза.');
    end;
 
    Writeln('Повторить - Enter. Выход - любой символ + Enter.');
    Readln(S);
    Readkey;
End.

2.
Код:
Program Project1;
 
const n=10;
 
type arr=array [1..n] of integer;
var i:integer;
 
(==========================================)
 
     function S(g=arr; Cnt:integer;):string;
          Begin
             Cnt := 0;
             for i := 1 to N do begin
             if Arr[i] > 0 then Inc(Cnt)
             else Dec(Cnt);
              end;
          end;
          Writeln('Ответ:');
    if Cnt < 0 then
      Writeln('TRUE')
    else
      Writeln('FALSE')
(==========================================)
     BEGIN clrscr;
     Writeln('Исходный массив:');
     Randomize;
     for i := 1 to N do begin
      Arr[i] := -5 + Random(11); //-5..+5.
      if i > 1 then Write(', ');
      Write(Arr[i]);
      writeln(S(Arr[i]));
      readkey;
      end;
eragon_ua вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
из строки вывести на экран те символы, которые встречаются только по 1 разу Andrey770 Паскаль, Turbo Pascal, PascalABC.NET 4 29.03.2011 19:08
В строке символов определить символы, которые встречаются по одному разу Andrey770 Паскаль, Turbo Pascal, PascalABC.NET 12 27.03.2011 00:08
Удалить 2 раза в строке слово, встречающееся более трех раз Новикова Ирина Помощь студентам 1 20.02.2011 20:10
Целочисленный массив. Элементы, которые встречаются более одного раза! Алина18 Помощь студентам 2 21.10.2010 08:10