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

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

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

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 21.12.2012, 20:57   #1
rororo
 
Регистрация: 21.12.2012
Сообщений: 9
Смущение Прошу помочь мне в решении

Приветствую всех форумчан. Я тут новенький. У меня тут такие задачи помогите решить.
1.Дана строка S. нужно вывести все буквы, которые встречаются в ней, и их количество.
К примеру надо ввести слово zazbasy. И должно вывести
a 2
b 1
y 1
z 3
Надо вывести букву и сколько раз она встречается в слове.

2. В ряд стоят N стульев. Время от времени подходит человек и садится на один из свободных стульев. При этом все соседи(если так есть) встают и уходят. Какое наибольшее число стульев может оказаться занятым, если сначала они все свободны?

3.В словаре у Вити N слов. У него также есть строка S. Он может переставлять любые буквы в этом слове. Сколько слов из словаря он может получить перестановкой букв своей строки S?

Ввести
3
aba
baa
aab
aba

Вывести
3



Ввести
food
game
pie
eagm

Вывести
1

Последний раз редактировалось rororo; 21.12.2012 в 21:00.
rororo вне форума
Старый 21.12.2012, 21:07   #2
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Вот он, ТС моей мечты Еще бы наработочки были так вообще шикарно было бы..
№1
Код:
var
    a : array ['A'..'Z'] of Byte;
    s : string;
    i : Integer; 
    j : Char;

begin
    for j := 'A' to 'Z' do
        a[j] := 0;

    ReadLn(s);
    for i := 1 to Length(s) do
        Inc (a[UpCase (s[i])]);

    for j := 'A' to 'Z' do
        WriteLn (j, ' ', a[j])
end.
Не проверял..
Poma][a вне форума
Старый 21.12.2012, 21:12   #3
rororo
 
Регистрация: 21.12.2012
Сообщений: 9
По умолчанию

У меня есть еще одна простенькая задача которую к сожалению не могу решить. Сможете?
Дается последовательность из N чисел. Найдите максимальное произведение среди всех пар этих чисел.
К примеру вводится количество чисел. И потом вводятся числа. И потом уже найти произведения самых максимальных двух чисел. Вот к примеру числа -10 -5 2 3.
Надо вывести произведения -10 и -5 так как они больше других чисел в модуле. Надеюсь все понятно)))
rororo вне форума
Старый 21.12.2012, 21:20   #4
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Цитата:
У меня есть еще одна простенькая задача которую к сожалению не могу решить. Сможете?
На слабо берете?
Код:
const
    SIZE = 1000000;

type
        TArr = array [1..SIZE] of LongInt;

procedure ReadArr (var a : TArr; var n : LongInt);

var
        i : LongInt;

begin
    ReadLn (n);

        for i := 1 to n do
        Read ( a[i] )
end;

procedure SortArr (var a : TArr; const n : LongInt);

var
        l, i, m, r : LongInt;
        t : LongInt;

begin

    for i := 2 to n do begin
        if a[i] < a[i-1] then begin

            t := a[i];

            l := 1;
            r := i-1;

            while l <> r do begin
                m := l + (r - l) div 2;
                if t > a[m] then
                    l := m + 1
                else
                    r := m;
            end;

            Move (a[r], a[r+1], (i - r) * SizeOf (a[1]));

            a[l] := t;
        end;
    end;
end;

var
        a : TArr;
        n, i : LongInt;
        l : Int64;
        p : Int64;

begin
        // assign(input, 'input.txt'); reset(input);
        // assign(output, 'output.txt'); rewrite(output);

        ReadArr (a, n);

        SortArr (a, n);

        p := a[n]*a[n-1];
        p := p*a[n-2];
        l := (a[1]) * a[2];
        l := l * a[n];
        if  p > l then
                WriteLn (p)
        else
            WriteLn (l);
end.
№2
Тут больше математическая задача, а думать сейчас очень-преочень лень.. К завтрашнему вечеру чего-нить да и предумаю..
№3
Читаем слова в массив строк. Запоминаем наше слово в переменную t и переменную s. while t <> s do begin
В тушке цикла, делаем посимвольный сдвиг в любую сторону, дальше ищем такуюже строку в массиве, если нашли то Inc (count). Всё.. Опять же писать лень..

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

Последний раз редактировалось Poma][a; 21.12.2012 в 22:08.
Poma][a вне форума
Старый 22.12.2012, 00:33   #5
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

2) Надеюсь, на огонек заглянут более математически подкованные и исправят, если нужно.
Имхо, N div 2 стульев, т.е. садиться нужно через одного.

"Простенькая" задача:
Код:
var
  min1, min2, max1, max2, i, n, k: longint;
begin
  readln(n);
  min1 := 2147483647;
  min2 := 2147483647;
  max1 := -2147483648;
  max2 := -2147483648;
  for i := 1 to n do
  begin
    read(k);
    if k < min1 then
    begin
      min2 := min1;
      min1 := k;
    end else
      if k < min2 then
        min2 := k;
    if k > max1 then
    begin
      max2 := max1;
      max1 := k;
    end
    else
      if k > max2 then
        max2 := k;
  end;
  if min1 = 2147483647 then
    min1 := 0;
  if min2 = 2147483647 then
    min2 := 0;
  if max1 = -2147483648 then
    max1 := 0;
  if max2 = -2147483648 then
    max2 := 0;
  if min1 * min2 > max1 * max2 then
    writeln(min1 * min2)
  else
    writeln(max1 * max2);
end.
Не уверен в 100% работоспособности.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )

Последний раз редактировалось BDA; 22.12.2012 в 00:58.
BDA на форуме
Старый 22.12.2012, 07:08   #6
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Цитата:
на огонек заглянут более математически подкованные
Не являюсь таким , но
Цитата:
Имхо, N div 2 стульев, т.е. садиться нужно через одного.
Правило рассадки, я думаю, Вы указали верно, в с формулой слегка накосячили (а кто ночью не косячит?)
Для четных чисел, всё верно..
Для нечетных чисел надо + единичку
Ведь
Код:
1 2 3
1 2 3
1 2 3
Так что формула, наверное, будет такая : n div 2 + n mod 2
Или n div 2 + Integer(Odd(n))

И если не секрет, ответ к какой задаче Вы воложили?)
И что значат там эти магические числа?)
Poma][a вне форума
Старый 22.12.2012, 12:53   #7
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Poma][a, ага, точно - забыл про единичку.

Решение для задачи из 3 поста.
Магические числа инициализируют переменные в надежде на то, что таких чисел в самой задаче не будет.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA на форуме
Старый 22.12.2012, 14:28   #8
rororo
 
Регистрация: 21.12.2012
Сообщений: 9
Сообщение хмм

А можно как то укоротить..и можете написать мне все правильно?

min1 := 2147483647;
min2 := 2147483647;
max1 := -2147483648;
max2 := -2147483648;
Можно это все как то написать кратко?
rororo вне форума
Старый 22.12.2012, 18:29   #9
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Цитата:
и можете написать мне все правильно?
А можете спасибо сказать, за уже решенные задачи?

BDA, пасиб за объяснения...
Poma][a вне форума
Старый 23.12.2012, 09:40   #10
rororo
 
Регистрация: 21.12.2012
Сообщений: 9
По умолчанию

))спасибо конечно)))
rororo вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Здравствуйте. Прошу помочь мне с вычислением величины Счаем Помощь студентам 1 21.11.2012 01:17
Алгоритмы. Не прошу решить. Прошу помочь! pascaluser Паскаль, Turbo Pascal, PascalABC.NET 2 12.10.2012 08:45
Прошу вас помочь мне с курсовой работой по программированию KISS_ka Помощь студентам 12 25.09.2011 13:43
Прошу помощи в решении 2х задач (Паскаль) Amatriz Паскаль, Turbo Pascal, PascalABC.NET 5 28.11.2008 14:13