
15.10.2009, 12:28
|
|
Участник форума
Регистрация: 05.06.2009
Сообщений: 225
С нами:
8912421
Репутация:
297
|
|
Народ помогите пожалуйста! +++ отблагодарю
У меня щас олимпиада по инфе
Решите плиз данные задачи на одном из языков программированию: Pascal,C/C++,Java, Delphi, Visual C++, FreePascal и еще какие то.. Желательно QuickBasic MS DOS
1) Определить является ли треугольник со сторонами a,b,c равнобедренным.
2) Для надежности некоторый текст был передан по линии связи трижды, но каждый раз ровно один символ был принят в искаженном виде.
требуется по трем полученным текстам восстановить исходный текст или установить, что сделать это невозможно.
Входные данные:
Три текстовые строки длиной не более 255 символов каждая.
Выходные данные:
Текстовая строка с восстановленным текстом либо сообщение о невозможности восстановления.
Щас еще дам.. На все у меня осталось 1,40 ч на решение..
Все это нужно сделать программно
Последний раз редактировалось winlogon.exe; 15.10.2009 в 12:35..
|
|
|

15.10.2009, 12:34
|
|
Участник форума
Регистрация: 05.06.2009
Сообщений: 225
С нами:
8912421
Репутация:
297
|
|
Вот еще:
3) "В помощь юнитам". Утром одного дня на опытной станции взошли два цветка, посеянные накануне. Жизненный цикл одного из них состовляет n дней, а другого - m дней (n,m - натуральные числа, не превосходящие 255). В последний день жизни растение цветет, роняет зерно и умерает. На утро следующего дня из зерна начинает расти такой же цветок. Напишите программу, которая по введенным n и m (в таком порядке), вычисляет, на какой день он начала процесса можно наблюдать цветение обоих растений.
|
|
|

15.10.2009, 13:16
|
|
Участник форума
Регистрация: 05.06.2009
Сообщений: 127
С нами:
8912059
Репутация:
249
|
|
Pascal ;D
Сообщение от winlogon.exe
Вот еще:
3) "В помощь юнитам". Утром одного дня на опытной станции взошли два цветка, посеянные накануне. Жизненный цикл одного из них состовляет n дней, а другого - m дней (n,m - натуральные числа, не превосходящие 255). В последний день жизни растение цветет, роняет зерно и умерает. На утро следующего дня из зерна начинает расти такой же цветок. Напишите программу, которая по введенным n и m (в таком порядке), вычисляет, на какой день он начала процесса можно наблюдать цветение обоих растений.
Чето не так щас поправлю....
Код:
program dayxxx;
var
stday,n,m:byte;
mx,nx,intI:longint;
begin
n:=2;
m:=7;
if n = m then begin
writeln('potrebuets9 ',n,' dney');
readln;
exit;
end;
if n> m then stday:=n else stday:=m;
for intI:=stday to 1000000 do begin
mx:=intI;
nx:=intI;
while mx>0 do mx:=mx-m;
mx:=mx+m;
while nx>0 do nx:=nx-n;
nx:=nx+n;
writeln('mx ',mx,' nx ',nx);
if mx = nx then break;
end;
writeln('potrebuets9 ',intI-1,' dney');
readln;
end.
Результат работы:
Последний раз редактировалось Dosia; 15.10.2009 в 13:30..
|
|
|

15.10.2009, 13:44
|
|
Участник форума
Регистрация: 05.06.2009
Сообщений: 127
С нами:
8912059
Репутация:
249
|
|
Сообщение от winlogon.exe
2) Для надежности некоторый текст был передан по линии связи трижды, но каждый раз ровно один символ был принят в искаженном виде.
требуется по трем полученным текстам восстановить исходный текст или установить, что сделать это невозможно.
Входные данные:
Три текстовые строки длиной не более 255 символов каждая.
Выходные данные:
Текстовая строка с восстановленным текстом либо сообщение о невозможности восстановления.
Код:
program strreceive;
var
str:array[1..3] of string;
Variaz:array[1..3] of byte;
strresult:string;
intI:integer;
begin
str[1]:='root@locaphost';
str[2]:='root.localhost';
str[3]:='root.,ocalhost';
Variaz[1]:=0;
Variaz[2]:=0;
Variaz[3]:=0;
for intI:=1 to length(str[1]) do begin
if (str[1][intI]=str[2][intI]) and (str[1][intI]=str[3][intI]) then strresult:=strresult+str[1][intI]
else begin
if (str[1][intI] = str[2][intI]) and (str[1][intI]<>str[3][intI]) then begin
if Variaz[3] = 1 then begin
writeln('He mory vosstanovitb stroky');
readln;
exit;
end;
strresult:=strresult+str[1][intI];
variaz[3]:=1;
end;
if (str[2][intI] = str[3][intI]) and (str[2][intI]<>str[1][intI]) then begin
if Variaz[1] = 1 then begin
writeln('He mory vosstanovitb stroky');
readln;
exit;
end;
strresult:=strresult+str[3][intI];
Variaz[1]:=1;
end;
if (str[1][intI] = str[3][intI]) and (str[2][intI]<>str[3][intI]) then begin
if Variaz[2] = 1 then begin
writeln('He mory vosstanovitb stroky');
readln;
exit;
end;
strresult:=strresult+str[1][intI];
Variaz[2] :=1;
end;
end;
end;
writeln('Iskoma9 stroka = ',strresult);
readln;
end.
Результат работы:
str[1] := 'root@loca phost';
str[2] := 'r yot@localhost';
str[3] := 'root .locaphost';
Код:
Iskoma9 stroka = root@localhost
str[1] := 'root@loca phost';
str[2] := 'r y1t@localhost';
str[3] := 'root .locaphost';
Код:
He mory vosstanovitb stroky
Мне пора идти (Уже опоздал минут на 15), удачи, если че нитак, не надо желать моей смерти ;D
Последний раз редактировалось Dosia; 15.10.2009 в 13:58..
|
|
|

10.02.2010, 21:23
|
|
Новичок
Регистрация: 10.02.2010
Сообщений: 2
С нами:
8552043
Репутация:
0
|
|
помогите народ задачка такая :
Разработать приложение в Delphi,которое при вводе числа выводит на экран его текстовую интерпритацию:.. Вот такая задачка. если она "пойдет" то рублей 20 на R кашель кину)) |Тестовая интерпретация - это как
102 - Сто два
1031 - Одна тысяча тридцать один|, мне сказали от 1 до 1миллиона(1...1 000 000)
|
|
|

11.02.2010, 20:22
|
|
Участник форума
Регистрация: 05.06.2009
Сообщений: 127
С нами:
8912059
Репутация:
249
|
|
Сообщение от worlock13viper
помогите народ задачка такая :
Разработать приложение в Delphi,которое при вводе числа выводит на экран его текстовую интерпритацию:.. Вот такая задачка. если она "пойдет" то рублей 20 на R кашель кину)) |Тестовая интерпретация - это как
102 - Сто два
1031 - Одна тысяча тридцать один|, мне сказали от 1 до 1миллиона(1...1 000 000)
Код:
Type
T = record
StrRepr:string;
End;
Type
TT = record
One:array[0..9] of T;
End;
const
ts=' тысяч';
var
frmMain: TfrmMain;
Mass:array[1..7] of TT;
MassEx:array[10..19] of string;
implementation
{$R *.dfm}
procedure SpecialRange(Str:string;var intA,intB:integer);
begin
if (9 < strtoint(str)) and (strtoint(str)<20) then begin
if (intB <> 3) then frmMain.lblOut.Caption := MassEx[strtoint(str)]+' '+frmMain.lblOut.Caption
else
frmMain.lblOut.Caption:=MassEx[strtoint(str)]+ts+' '+frmMain.lblOut.Caption;
intA:=intA-2;
intB:=intB+2;
end;
end;
procedure TfrmMain.Button1Click(Sender: TObject);
var
intA,intB:integer;
begin
//Фильтр на ввод символов в поле ставить не стал(исходники могут скачать не все,
//а вдруг кому то потребуется), поэтому
try
if (strtoint(edtIn.text)-1)<0 then begin
showmessage('Введите число в диапазоне от 1(одного) до 1000000(миллиона)');
exit;
end;
except
showmessage('Введите число в диапазоне от 1(одного) до 1000000(миллиона)');
exit;
end;
//Не больше миллиона!
if strtoint(edtIn.text) > 1000000 then begin
showmessage('Не больше миллиона!');
edtIn.Text := '1000000';
edtIn.SetFocus;
exit;
end;
lblOut.Caption := '';
//intA счетчик
//В intB текущий разряд
intB:=1;
intA:=length(edtIn.Text);
//Последние 2 цифры в переделе от 9 - 19?
SpecialRange(copy(edtIn.Text,length(edtIn.Text)-1,2),intA,intB);
while intA > 0 do begin
//Если строка не пустая
if (Mass[intB].One[strtoint(copy(edtIn.Text,intA,1))].StrRepr <> '') then lblOut.Caption := Mass[intB].One[strtoint(copy(edtIn.Text,intA,1))].StrRepr+' '+lblOut.Caption;
if (intA = 1) and (intB= 6) and (pos(ts,lblOut.Caption)=0) then lblOut.Caption:=lblOut.Caption+ts;
// 9< Десятки тысяч и тысячи < 19
if (length(edtIn.text) > 4) and (intB=3) then SpecialRange(copy(edtIn.Text,length(edtIn.Text)-4,2),intA,intB);
inc(intB);
dec(intA);
end;
//Только одна буква большая
if not(chkUp.Checked) then lblOut.Caption:=copy(lblOut.Caption,1,1)+ AnsiLowerCase(copy(lblOut.Caption,2,length(lblOut.Caption)-1));
edtIn.SetFocus;
end;
procedure TfrmMain.FormCreate(Sender: TObject);
begin
//Единицы
Mass[1].One[0].StrRepr := '';
Mass[1].One[1].StrRepr := 'Один';
Mass[1].One[2].StrRepr := 'Два';
Mass[1].One[3].StrRepr := 'Три';
Mass[1].One[4].StrRepr := 'Четыре';
Mass[1].One[5].StrRepr := 'Пять';
Mass[1].One[6].StrRepr := 'Шесть';
Mass[1].One[7].StrRepr := 'Семь';
Mass[1].One[8].StrRepr := 'Восемь';
Mass[1].One[9].StrRepr := 'Девять';
//10-19 Специальные
MassEx[10]:='Десять';
MassEx[11]:='Одиннадцать';
MassEx[12]:='Двенадцать';
MassEx[13]:='Тринадцать';
MassEx[14]:='Четырнадцать';
MassEx[15]:='Пятнадцать';
MassEx[16]:='Шестнадцать';
MassEx[17]:='Семнадцать';
MassEx[18]:='Восемнадцать';
MassEx[19]:='Девятнадцать';
//Десятки
Mass[2].One[0].StrRepr := '';
Mass[2].One[2].StrRepr := 'Двадцать';
Mass[2].One[3].StrRepr := 'Тридцать';
Mass[2].One[4].StrRepr := 'Сорок';
Mass[2].One[5].StrRepr := 'Пятьдесят';
Mass[2].One[6].StrRepr := 'Шестьдесят';
Mass[2].One[7].StrRepr := 'Семьдесят';
Mass[2].One[8].StrRepr := 'Восемьдесят';
Mass[2].One[9].StrRepr := 'Девяносто';
//Сотни
Mass[3].One[0].StrRepr := '';
Mass[3].One[1].StrRepr := 'Сто';
Mass[3].One[2].StrRepr := 'Двести';
Mass[3].One[3].StrRepr := 'Триста';
Mass[3].One[4].StrRepr := 'Четыреста';
Mass[3].One[5].StrRepr := 'Пятьсот';
Mass[3].One[6].StrRepr := 'Шестьсот';
Mass[3].One[7].StrRepr := 'Семьсот';
Mass[3].One[8].StrRepr := 'Восемьсот';
Mass[3].One[9].StrRepr := 'Девятьсот';
//Тысячи
Mass[4].One[0].StrRepr := '';
Mass[4].One[1].StrRepr := 'Одна тысяча';
Mass[4].One[2].StrRepr := 'Две тысячи';
Mass[4].One[3].StrRepr := 'Три тысячи';
Mass[4].One[4].StrRepr := 'Четыре тысячи';
Mass[4].One[5].StrRepr := 'Пять тысяч';
Mass[4].One[6].StrRepr := 'Шесть тысяч';
Mass[4].One[7].StrRepr := 'Семь тысяч';
Mass[4].One[8].StrRepr := 'Восемь тысяч';
Mass[4].One[9].StrRepr := 'Девять тысяч';
//Десятки тысяч
Mass[5].One[0].StrRepr := '';
Mass[5].One[2].StrRepr := 'Двадцать';
Mass[5].One[3].StrRepr := 'Тридцать';
Mass[5].One[4].StrRepr := 'Сорок';
Mass[5].One[5].StrRepr := 'Пятьдесят';
Mass[5].One[6].StrRepr := 'Шестьдесят';
Mass[5].One[7].StrRepr := 'Семьдесят';
Mass[5].One[8].StrRepr := 'Восемьдесят';
Mass[5].One[9].StrRepr := 'Девяносто';
//Сотни тысяч
Mass[6].One[0].StrRepr := '';
Mass[6].One[1].StrRepr := 'Сто';
Mass[6].One[2].StrRepr := 'Двести';
Mass[6].One[3].StrRepr := 'Триста';
Mass[6].One[4].StrRepr := 'Четыреста';
Mass[6].One[5].StrRepr := 'Пятьсот';
Mass[6].One[6].StrRepr := 'Шестьсот';
Mass[6].One[7].StrRepr := 'Семьсот';
Mass[6].One[8].StrRepr := 'Восемьсот';
Mass[6].One[9].StrRepr := 'Девятьсот';
//Миллион ;D
Mass[7].One[1].StrRepr := 'Один Миллион';
end;
Исходники и скомпилированный .exe
pass: antichat.ru
Последний раз редактировалось Dosia; 15.02.2010 в 18:32..
|
|
|

11.02.2010, 23:39
|
|
Новичок
Регистрация: 16.11.2008
Сообщений: 27
С нами:
9201836
Репутация:
6
|
|
to Dosia: с десятитысячными не пашет
|
|
|

23.06.2007, 17:39
|
|
Постоянный
Регистрация: 11.03.2007
Сообщений: 581
С нами:
10088966
Репутация:
646
|
|
Тогда все в виде констант. Можно в виде массива
Код:
TQuestion = record
Text, Ans1, Ans2, Ans3, Ans4: string;
RightAns: 1..4;
end;
...
QArray: array[1..10] of TQuestion;
При запуске программы заполняй чем надо.
|
|
|

23.06.2007, 17:41
|
|
Познающий
Регистрация: 14.04.2007
Сообщений: 46
С нами:
10039785
Репутация:
13
|
|
Сообщение от Joker-jar
Тогда все в виде констант. Можно в виде массива
Код:
TQuestion = record
Text, Ans1, Ans2, Ans3, Ans4: string;
RightAns: 1..4;
end;
...
QArray: array[1..10] of TQuestion;
При запуске программы заполняй чем надо.
Ясно наверное я рано взялся за такое задние ((( Только сегодня массивы прошли (((
|
|
|

23.06.2007, 17:50
|
|
Познающий
Регистрация: 26.01.2007
Сообщений: 46
С нами:
10152147
Репутация:
28
|
|
Нужна помошь
задание тут http://www.permcity.info/help.jpg если кто-нибудь сделает хотяб что нибудь из этой работы буду плюсовать каждый день тому человеку
Последний раз редактировалось md5f1h; 04.07.2007 в 17:15..
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|