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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.01.2008, 21:34   #1
Zenit10
Пользователь
 
Регистрация: 16.01.2008
Сообщений: 16
По умолчанию Строки

Вроде бы лёгкая задача но не получается, много пропустил и забыл уже как работать в паскале. помогите кто может.
дорешал досюда
uses crt;
Var
s:string;
c,min:byte;
begin
clrscr;
for c :=1 to length(s) do
if min > c then
c:=min;
else
writeln(min:6:2);
readkey;
End.
Zenit10 вне форума Ответить с цитированием
Старый 16.01.2008, 21:39   #2
Карась
Участник клуба
 
Аватар для Карась
 
Регистрация: 26.10.2007
Сообщений: 1,244
По умолчанию

Код:
uses crt;
Var
s:string;
c,min:byte;

begin
clrscr;

for c := 1 to length(s) do

  if min > c then  // Чему равен минимум и зачем ево сравнивать с с? 
    c:=min;         // Что вообще должен делать этот цикл?
  else
    writeln(min:6:2); // округление разве применяется к Byte......

readkey;
End.
Умом Россию не понять, пока не выпито ноль пять,
А если выпито ноль пять всё делом кажется не хитрым,
Попытка глубже понимать уже попахивает литром...
Карась вне форума Ответить с цитированием
Старый 16.01.2008, 22:41   #3
Zenit10
Пользователь
 
Регистрация: 16.01.2008
Сообщений: 16
По умолчанию

Я поэтому и обратился сюда потому что не могу разобраться с паскалем.
Zenit10 вне форума Ответить с цитированием
Старый 16.01.2008, 22:50   #4
Карась
Участник клуба
 
Аватар для Карась
 
Регистрация: 26.10.2007
Сообщений: 1,244
По умолчанию

Пиши задание полностью.
Из твоего кода неясно, что должно происходить.
Умом Россию не понять, пока не выпито ноль пять,
А если выпито ноль пять всё делом кажется не хитрым,
Попытка глубже понимать уже попахивает литром...
Карась вне форума Ответить с цитированием
Старый 16.01.2008, 23:19   #5
Alex21
With best regards
Участник клуба
 
Регистрация: 20.04.2007
Сообщений: 1,448
По умолчанию

Перед else точку с запятой убери.
Alex21 вне форума Ответить с цитированием
Старый 17.01.2008, 14:10   #6
Zenit10
Пользователь
 
Регистрация: 16.01.2008
Сообщений: 16
По умолчанию

Вот условие задачи:
Дана строка S. Найти символ, встречающийся в этой строке минимальное количество раз.
Zenit10 вне форума Ответить с цитированием
Старый 17.01.2008, 14:57   #7
Alex21
With best regards
Участник клуба
 
Регистрация: 20.04.2007
Сообщений: 1,448
По умолчанию

Цитата:
Сообщение от Zenit10 Посмотреть сообщение
Вот условие задачи:
С этого и надо было начать. На форуме уже решали такие задачи.
Alex21 вне форума Ответить с цитированием
Старый 17.01.2008, 19:18   #8
Zenit10
Пользователь
 
Регистрация: 16.01.2008
Сообщений: 16
По умолчанию

если не трудно где именно можно ссылку на пост.
Zenit10 вне форума Ответить с цитированием
Старый 17.01.2008, 23:01   #9
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

если не заморачиваться с оптимальность алгоритма, то вот полное решение:
Код:

function Freq(AllStr : string; CheckChar : char):integer;
var k,count:integer;

begin
  count := 0;
  for k:=1 to Length(AllStr) do
    if AllStr[k]=CheckChar then 
      inc(Count);
  Freq := count;
end;

var
  s : string;
  MinChar : string[1];
  i, CurFreq, MinFreq : integer;
  
begin
  WriteLn('Введите строку: ');
  Readln(S);
  {иницилизируем невероятном значением - больше чем символов в строке}
  MinFreq := Length(S)+1; 
  
  for i:=1 to Length(S) do begin
    {вот в переменную CurFreq получим сколько раз 
       в строке встречаеся i-й символ строки}
    CurFreq := Freq(S, S[i]);
    if CurFreq<MinFreq then
    begin
      MinFreq := CurFreq;
      MinChar := S[i];
    end;
  end;

  if  MinFreq < (Length(S)+1) then 
    WriteLn('Реже всего встречается символ "',MinChar,'" ',MinFreq:1,' раз.' );
      
end.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 17.01.2008, 23:07   #10
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Если подпрограммы не проходили, то вот обычное, "школьное" решение.
Код:
uses crt;
var s,s1:string;  //исходная строка и ее копия
    a:array[1..100]of integer;//массив количеств каждого символа
    i,j,k:integer;//счетчики
    min,imin:integer;//минимальное количесво раз одного знака и его порядковый номер
begin
clrscr;
write('s: ');readln(s);
s1:=s;
for i:=1 to length(s) do
   begin
     k:=0;
     for j:=1 to length(s1) do
     if (s[i]=s1[j]) then
       begin
         k:=k+1;    //считаем сколько раз каждый символ встречается
         a[i]:=k;   //вводим это число в массив
         min:=a[1];imin:=1; //присваиваем минимальное значение первому элементу
        if a[i]<min then
            begin
              min:=a[i]; //находим минимальное
              imin:=i;    //его номер
            end;
       end;
   end;
write('min el=',s[imin]); //выводим символ, который реже всех встречается
readln
end.
puporev вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
считать из файла две строки, вывести на экран символы первой строки, которые отсутствуют во второй gotex Помощь студентам 4 08.05.2008 02:27
Строки Настена Помощь студентам 1 07.01.2008 23:47
Строки. Mr.User Помощь студентам 11 08.12.2007 07:00
как вывести строку поочередно сначала первая буква первой строки потом первая буква второй строки и т.д. vitalik007 Помощь студентам 1 25.09.2007 20:45