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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.03.2008, 22:57   #1
Wintrymoon
Пользователь
 
Аватар для Wintrymoon
 
Регистрация: 06.03.2008
Сообщений: 13
Восклицание массы n идентичных на вид монет среди которых одна фальшивая - легче или тяжелее остальных

Это снова я...меня опять загрузили...Вот ещё несколько задач..Я примерно знаю, но всё расно до конца не получается((( Помогите...Это тоже срочно. До 11 марта.
№1 С клавиатуры вводится n чисел - массы n идентичных на вид монет среди которых одна фальшивая - легче или тяжелее остальных. Напишите программу которая выводит на экран, какая по счёту монета является фальшивой, и если эта монета легче или тяжелее остальных вывести соответствующее сообщение.

Например:
Input:
6
333533
Output:
4
тяжелее

№2 С клаввиатуры вводится текст все слова которого написаны строчными буквами английского алфавита. В предложении слова разделены пробелом. Предложение заканчивается точкой, а перед началом следующего предложения стоит пробел. Все числа написаны римскими цифрами (I,V,X,L,C,D,M). Напишите программу которая преобразует текст так, чтобы предложение начиналось с большой буквой, а все числа были написаны в десятичной системе счисления арабскими цифрами.

Например:
Input:
e etapa I-a. participa clasele a IX-XII. e ziua a VII-a a saptaminii.
Output:
E etapa 1-a. Participa clasele a 9-12. E ziua a 7-a a saptaminii.

№3 Файл a1.in содержит в первой строчке текст длиной <=255 который состоит из строчных букв английского алфавита и пробелов между словами. Записать в файл a2.out слово палиндром которое содержит наибольшее количество гласных.

Например:
Input:
azi nu este potop si ana participa la concursul ababababababa din tara mmmmmmmmm.
Output:
ababababababa

Заранее Всем огромное спасибо!!!!!!!!
Мечта - не бегство от действительности, а способ приблизится к ней!

Последний раз редактировалось Wintrymoon; 07.03.2008 в 17:48. Причина: ошиблась
Wintrymoon вне форума Ответить с цитированием
Старый 07.03.2008, 02:00   #2
Шаман
Пользователь
 
Регистрация: 01.03.2008
Сообщений: 25
По умолчанию

Первая задача:
Проверял, вроде работало...
Код:
uses
crt;
var
money:array [1..6] of integer;
res,max,i,j:integer;
begin
 clrscr;
 writeln('Введи вес монет');
for i:=1 to 6 do
  readln(money[i]);
  max:=1;
for i:=1 to 6 do
  if max<money[i] then
  begin
   max:=money[i];
   j:=i;
  end;
writeln(j,'-я монета тяжелее');
readln;
end.
Плюс 1
Шаман вне форума Ответить с цитированием
Старый 07.03.2008, 02:15   #3
Carbon
JAVA BEAN
Участник клуба
 
Аватар для Carbon
 
Регистрация: 22.04.2007
Сообщений: 1,329
По умолчанию

Монет может быть сколько угодно и фальшивая может быть также легче остальных.

Эх! Вспомню молодость!

Код:
var n, //количество чисел
    first, //первое число
    prev, //предыдущее число
    next, //текущее число
    value, //считываемое значение
    i,
    index:integer; //номер фальшивой монеты

    equal1, //равенство первого и предыдущего числа
    equal2, //равенство первого и текущего числа
    less:boolean; //фальшивая монета меньше по весу

begin
    readln(n);
    index:=-1;

    for i:=1 to n do
    begin
        read(value);
        //сохраняем первое число
        if i=1 then
            first:=value
        else
            //если фальшивая монета не найдена
            if index=-1 then
            begin
                //третья монета
                next:=value;
                //находим первое равенство
                if i=2 then
                    equal1:=first=next
                else
                begin
                    //находим второе равенство
                    equal2:=first=next;
                    //Если все 3 монеты равны, продолжаем дальше
                    if equal1 and equal2 then
                        equal1:=equal2
                    else
                        //если первые две монеты равны,
                        //а первая и третья неравны,
                        //то фальшивая - третья
                        if equal1 and not equal2 then
                        begin
                            index:=i;
                            less:=next<first
                        end
                        else
                            //если первые две монеты неравны,
                            //а первая и третья равны,
                            //то фальшивая - вторая
                            if not equal1 and equal2 then
                            begin
                                index:=i-1;
                                less:=prev<first
                            end
                            else
                            //если первые две монеты неравны,
                            //первая и третья неравны,
                            //то фальшивая - первая
                            begin
                                index:=1;
                                less:=first<next
                            end;
                end;

                //теперь второй монетой будет текущая
                prev:=next
            end;
    end;

    //если все числа равны или их меньше трёх
    if index=-1 then
        writeln('ответ неопределён')
    else
    begin
        writeln(index);
        if less then
            writeln('легче')
        else
            writeln('тяжелее')
    end;

    readln;
    readln;
end.
У меня без массивов.
Carbon вне форума Ответить с цитированием
Старый 07.03.2008, 02:21   #4
Carbon
JAVA BEAN
Участник клуба
 
Аватар для Carbon
 
Регистрация: 22.04.2007
Сообщений: 1,329
По умолчанию

А слово-палиндром - это соответствует точно слову из входного файла? Если да, то что если таковых не окажется?
Carbon вне форума Ответить с цитированием
Старый 07.03.2008, 08:44   #5
alexBlack
Участник клуба
 
Регистрация: 12.10.2007
Сообщений: 1,204
По умолчанию

Цитата:
Сообщение от Carbon Посмотреть сообщение
А слово-палиндром - это соответствует точно слову из входного файла? Если да, то что если таковых не окажется?
Насколько я знаю, палиндром - слово (фраза) которая читается одинаково в обеих направлениях.

А роза упала на лапу Азора
alexBlack вне форума Ответить с цитированием
Старый 07.03.2008, 17:51   #6
Wintrymoon
Пользователь
 
Аватар для Wintrymoon
 
Регистрация: 06.03.2008
Сообщений: 13
По умолчанию

Цитата:
Сообщение от Carbon Посмотреть сообщение
А слово-палиндром - это соответствует точно слову из входного файла? Если да, то что если таковых не окажется?
Я специально должна ввести несколько слов палиндром (которые читаются одинакого что справа налева, что слева на право, даже это может быть и повторение одной буквы....просто набор)
Мечта - не бегство от действительности, а способ приблизится к ней!
Wintrymoon вне форума Ответить с цитированием
Старый 07.03.2008, 18:33   #7
Carbon
JAVA BEAN
Участник клуба
 
Аватар для Carbon
 
Регистрация: 22.04.2007
Сообщений: 1,329
По умолчанию

Цитата:
Сообщение от alexBlack Посмотреть сообщение
Насколько я знаю, палиндром - слово (фраза) которая читается одинаково в обеих направлениях.

А роза упала на лапу Азора
Я и сам знаю, что такое палиндром.
Carbon вне форума Ответить с цитированием
Старый 08.03.2008, 18:39   #8
Wintrymoon
Пользователь
 
Аватар для Wintrymoon
 
Регистрация: 06.03.2008
Сообщений: 13
По умолчанию

Цитата:
Сообщение от Carbon Посмотреть сообщение
Эх! Вспомню молодость!
Огромное спасибо!!!!!!!
Мечта - не бегство от действительности, а способ приблизится к ней!
Wintrymoon вне форума Ответить с цитированием
Старый 08.03.2008, 18:40   #9
Wintrymoon
Пользователь
 
Аватар для Wintrymoon
 
Регистрация: 06.03.2008
Сообщений: 13
По умолчанию

Всем кто помог большое спасибо!!!! .....только там остались ещё задачи....хотя бы что нибудь помогите....а то сдавать скоро....а я ничего не успеваю...(((((((
Мечта - не бегство от действительности, а способ приблизится к ней!
Wintrymoon вне форума Ответить с цитированием
Старый 09.03.2008, 03:11   #10
Carbon
JAVA BEAN
Участник клуба
 
Аватар для Carbon
 
Регистрация: 22.04.2007
Сообщений: 1,329
По умолчанию

№3
Код:
const letters:set of char=['a','e','i','j','o','u','y'];

var f_in,f_out:textfile;
    line,max,curr:string;
    len,i,cnt,max_cnt:integer;
    exists,res:boolean;

function isPalindrome(wd:string):boolean;
var i,j:integer;
    res:boolean;
begin
    res:=true;
    j:=Length(wd);
    i:=1;

    while res and (i<=j) do
    begin
        res:=wd[i]=wd[j];
        inc(i);
        dec(j)
    end;

    isPalindrome:=res
end;

begin
    assignfile(f_in,'a1.in');
    reset(f_in);
    readln(f_in,line);
    closefile(f_in);

    curr:='';
    max:='';
    cnt:=0;
    max_cnt:=-1;
    exists:=false;

    len:=Length(line);
    for i:=1 to len do
        if line[i] in ['a'..'z'] then
        begin
            curr:=curr+line[i];
            if line[i] in letters then
                inc(cnt);
        end
        else
            if curr<>'' then
            begin
                res:=isPalindrome(curr);
                if cnt>max_cnt then
                begin
                    max:=curr;
                    max_cnt:=cnt
                end;
                exists:=exists or res;
                curr:='';
                cnt:=0
            end;

    if curr<>'' then
    begin
        res:=isPalindrome(curr);
        if cnt>max_cnt then
            max:=curr;
        exists:=exists or res;
    end;

    assignfile(f_out,'a2.out');
    rewrite(f_out);
    if exists then
        writeln(f_out,max)
    else
        writeln(f_out,'*NO PALINDROMES FOUND*');
    closefile(f_out);
end.
Тут, я думаю, понятно? Выделяем слова, подсчитывая в них гласные (набор гласных правильный?). Затем для каждого слова проверяем, является ли он палиндромом, затем сравниваем с максимумом по гласным.

Последний раз редактировалось Carbon; 09.03.2008 в 03:14.
Carbon вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Много ли геймеров среди присутсвующих? Alar Свободное общение 57 03.12.2008 18:34
Форма поверх всех остальных Avalonix Общие вопросы Delphi 1 30.05.2008 14:48
Какой язык программирования вы любите/уважаете больше остальных? theos Свободное общение 3 14.12.2007 17:47
Как сделать так чтобы окно формы всегда было поверх остальных окон? HelloZAPOR Общие вопросы Delphi 5 23.07.2007 08:05
форма VBA поверх остальных элементов, OnTop Virtson Microsoft Office Access 0 02.04.2007 16:09