Автор: SpEctAtOr 29.05.2004 19:23
7).Введены три массива положительных вещественных чисел А[1:5] B[1:8] C[1:6]
задается точность E:
E=alfa для элемнтов массива А;
E=betta для элементов массива В;
E=gamma для элементов массива C;
где alfa,betta,gamma -- произвольно заданные числа.
для каждого элемента каждой матрицы вычисляются значения (корень третьей степени из а) , (корень третьей степени из в) , (корень третьей степени из с) следующим итерационным алгоритмом:
1. Y0=x
2. Y1=Y0-((Y0 в кубе)-X)/3*Y0
3. при |Y1-Y0|>E, Yo=Y1; повторение с п.2;
при |Y1-Y0|<=E, Y1=Y0.
Требуется для каждого массива определить номер элемента, для которого число итераций было минимальным.
Отпечатать элементы того массива, для которого вычмсленный номер оказался наибольшим.
8).Заданы две матрицы действительных чисел А[5x5] u B[6x6]. Требуется составить программу вычисления новых матриц A' u B' по следующему алгоритму:
1. в каждой матрице роводится главная левая диагональ (сверху вниз и слева направо), в результате чего образуются две треугольные матрицы;
2. для матрицы А все элементы, расположенные в верхнем треугольнике, расположить в каждой строке в порядке убывания элементов слева направо;
3. для матрицы В требуется выполнить действия, определнные в п.2 относительно нижнего треугольника.
Программа сортировки треугольной матрицы должна быть оформлена в виде процедуры. Выходным параметром этой процедуры должна быть матрица, полученная из исходной по алгоритму, описанному выше.
9).Дан текст из слов, разделенных произвольным числом пробелов. Определить число слов, начинающихся на ту же букву, что и третье слово.
10).Дан текст из слов, разделенных произвольным числом пробелов. Распечатать слова, имеющие две подряд идущие одинаковые гласные.
11).Дан список жильцов по форме: *ФИО*год рождения*месяц*день рождения*
Распечатать в алфавитном порядке фамилии жильцов, которым к заданной дате исполнилось 18 лет. Использовать RECORD.
12).Дана таблица по форме: *ФИО*отметки о посещении 10-ти занятий (0-пропустил, 1-присутствовал)*оценки задач*
Сформировать таблицу: *ФИО*количество пропусков*средний балл*количество задач*зачёт(незачёт).
Зачёт ставится студентам, пропустившим не более 5 занятий, сделавших не менее 8 задач, в том числе №9 и №10, и имеющих не менее 4-х оценок "4" и "5". Использовать тип RECORD.
13).Дан текст из строчных латинских букв, за которыми следует точка. Напечатать все буквы, входящие в текст не менее двух раз. Использовать SET OF.
14).Из какого числа разных состоит целое положительное число N и каковы эти цифры.
15).Дан символический файл "F". Переписать компоненты файла "F" в файл "Q", заменив при этом букву "а" на букву "о", и первый и последний символ на "!".
16).Компонентами файла "F" являются целые числа
СеСиЯ ГоРиТ ... Кто сделает задачи ОТБЛАГАДАРЮ ... мой e-mail dorgunu@mail.ru
Кидать никого не собираюсь...
Автор: GLuk 30.05.2004 14:20
1. Тогда ты не в тот раздел постишь...
2. Сам пробовал хоть одну сделать?
3. Я ща на шашлыки до понедельника, когда приеду может сделаю, без всяких денег, но ессесно лишь алгоритм, а ты делаешь практическую реализацию...
4. И что это за маты, товарисчи??
Относится к kile (Хаффман) в первую очередь.
Автор: SpEctAtOr 30.05.2004 16:00
Цитата
1. Тогда ты не в тот раздел постишь...
2. Сам пробовал хоть одну сделать?
3. Я ща на шашлыки до понедельника, когда приеду может сделаю, без всяких денег, но ессесно лишь алгоритм, а ты делаешь практическую реализацию...
4. И что это за маты, товарисчи??
Относится к kile (Хаффман) в первую очередь.
заранее спасибо
Автор: SpEctAtOr 30.05.2004 20:42
Я ИСПРАВЛЯЮСЬ У ВАС НА ГЛАЗАХ =) ;)
СДЕЛАЛ САМ 13 ЗАДАЧУ НА МНОЖЕСТВА, МОЖЕТ ПРОВЕРИТЕ?! МОЖЕТ БЫТЬ ЕСТЬ ЧТО-ТО ЛИШНЕЕ В РЕШЕНИИ?!
Код
program zad_13;
uses crt;
Type
A = set of'A' .. 'Z';
Var
Text:string;
mnletvh,mnletvh2:set of 'A'..'Z';
i:integer;
Procedure Print(mn:A);
Var
let:char;
Begin
For let:='A' to 'Z' do
If let in mn
then
writeln(let)
End;
Begin
CLRSCR;
writeln('BBEDITE text ');
readln(text);
mnletvh:=[];
mnletvh2:=[];
For i:=1 to length(text) do
if text[i] in ['A'..'Z']
then
if not(text[i] in mnletvh)
then
mnletvh:=mnletvh+[text[i]]
else
mnletvh2:=mnletvh2+[text[i]];
print(mnletvh2);
readkey
End.
Автор: BlackShadow 31.05.2004 14:36
Строго и со вкусом Только, если процедура вызывается 1 раз, то может не надо её как процедуру оформлять? А, если всё таки так хочется, то опиши её как rocedure Print(Const mn:A) - так лучше будет
Автор: SpEctAtOr 31.05.2004 17:30
Цитата
Я ща на шашлыки до понедельника, когда приеду может сделаю, без всяких денег, но ессесно лишь алгоритм, а ты делаешь практическую реализацию...
Цитата
Строго и со вкусом Только, если процедура вызывается 1 раз, то может не надо её как процедуру оформлять? А, если всё таки так хочется, то опиши её как rocedure Print(Const mn:A) - так лучше будет
спасибо за совет...
Автор: GLuk 1.06.2004 0:47
2Spectator:
По последней цитате что-то не догнал краями??
Ща мне пока очень хреново...
Автор: GLuk 1.06.2004 16:25
Вот, то что сделал:
Насчет задачи с треугольной матрицей: ее я решать не буду, матрицы заданы в лоб, надеюсь догадаешься.
И в первой задаче итерационный алгоритм либо коряво написан, либо я еще пьян, либо чего-то не догоняю...
Все задачи раскиданы по процедурам.
Код
Uses
Crt;
Type
FIO = record
Name:String;
Year:Word;
Month:Byte;
Day:Byte;
end;
{‘в㤥вл}
Students = record
Name:String;
Z:array [1..10] of Boolean; {Џ®бҐйҐЁп}
Zz:array[1..10] of Byte; {ЋжҐЄЁ § § ¤ зЁ}
end;
Const
N:LongInt = 1234567;
S:String = ' ';
FIOCnt = 20;
G:Set of Char = ['Ђ','Ћ','…','“','ќ','ћ','џ','‰','›','?'];
Alfa = 0.03;
Beta = 0.004;
Gamma = 0.01;
Var
F,Q:File;
Ok:Boolean;
i,j:LongInt;
C:Char;
R:array[1..FIOCnt] of FIO;
Rr:FIO;
Code:Integer;
Z:array[1..FIOCnt] of Students;
Pr,Rz:Byte;
Sa,O4:Word;
St:String;
A:array[1..5] of Double;
B:array[1..8] of Double;
Cc:array[1..6] of Double;
X,Y:Real;
{----------------------------------------------------------}
{?§ Є ЄЁе жЁда б®бв®Ёв 楫®Ґ зЁб«® N Ё Є®«ЁзҐбвў® нвЁе жЁда}
Procedure DigitsCount;
begin
Str(N,S);
WriteLn('—Ёб«® N б®бв®Ёв Ё§ ',Ord(S[0]),' жЁда - "',S,'"');
end;
{----------------------------------------------------------}
Procedure ReplaceA;
{‡ ¬ҐЁвм ЎгЄўл Ђ Ћ, Ё Ї®бв ўЁвм !}
begin
Assign(F,'F');
Reset(F,1);
Assign(Q,'Q');
ReWrite(Q,1);
C:='!';
BlockWrite(Q,C,1);
WriteLn('ЏҐаҐ§ ЇЁблў Ґ¬ д ©«...');
For i:=1 to FileSize(F)-2 do
begin
GotoXY(1,3); Write('ќ«Ґ¬Ґв ®¬Ґа ',i+1);
BlockRead(F,C,1);
If C='A' then C:='O';
BlockWrite(Q,C,1);
end;
C:='!';
BlockWrite(Q,C,1);
Close(F);
Close(Q);
end;
Procedure After18;
begin
Write(#13#10'‚ўҐ¤ЁвҐ ¤ вг ў д®а¬ ⥠(„„.ЊЊ.ѓѓѓѓ) Ё«Ё, Ґб«Ё § Ї ¤«®'#13#10+
+' ЎЁа вм, ¦¬ЁвҐ ‚ў®¤ (Ї® 㬫з. 12.08.1985): ');
ReadLn(S);
If S='' then S:='12.08.1985';
{}
Val(Copy(S,1,Pos('.',S)-1),Rr.Day,Code);
Delete(S,1,Pos('.',S));
Val(Copy(S,1,Pos('.',S)-1),Rr.Month,Code);
Delete(S,1,Pos('.',S));
Val(S,Rr.Year,Code);
Dec(Rr.Year,18);
{‡ Ї®«пҐ¬ Ї®«п}
For i:=1 to FIOCnt do
With R[i] do
begin
S[0]:=Chr(Random(3)+10);
S[1]:=Chr(Random(32)+128); {128-159}
For j:=2 to Ord(S[0]) do
S[j]:=Chr(Random(15)+160); {160-175}
Name:=S;
Year:=Random(50)+1956;
Month:=Random(12)+1;
Day:=Random(25)+1; { ўбпЄЁ© б«гз © :)}
end;
TextColor(White);
WriteLn('‘ЇЁб®Є б®ўҐа襮«ҐвЁе:');
TextColor(LightGray);
For i:=1 to FIOCnt do
begin
Ok:=False;
If R[i].Year<Rr.Year then Ok:=True
else
If R[i].Year=Rr.Year then
If R[i].Month<Rr.Month then Ok:=True
else
If R[i].Month=Rr.Month then
If R[i].Day<=Rr.Day then Ok:=True;
If Ok then
begin
WriteLn(R[i].Name,': ',R[i].Day,':',R[i].Month,':',R[i].Year);
end;
end;
end;
Procedure PureStudents;
begin
For i:=1 to FIOCnt do
With Z[i] do
begin
{‘«гз ©®Ґ "Ё¬п"}
S[0]:=Chr(10);
S[1]:=Chr(Random(32)+128); {128-159}
For j:=2 to Ord(S[0]) do
S[j]:=Chr(Random(15)+160); {160-175}
Name:=S;
For j:=1 to 10 do
If Random(50)<25 then
begin
Z[j]:=True;
Zz[j]:=Random(2)+3;
end
else
begin
Z[j]:=False;
Zz[j]:=Random(3)+3;
end
end;
{‚®®ЎйҐ, Ў«пвм, гб«®ўЁҐ ¬®Ј Ўл Ё ®а¬ «м® ®д®а¬Ёвм #(}
{’ Ў«Ёж : - ”?Ћ - Љ®«-ў® Їа®ЇгбЄ®ў - ЋЎйЁ© Ў «« - Љ®«-ў® § ¤ з - ‡ з/Ґ§.}
{Љ®«-ў® аҐиҐле § ¤ з п в Є Ї®Ё¬ о??}
{‘Є®аҐ© ўбҐЈ® ЁдЁЈ Ґ в Є, ® Є Є ®д®а¬Ё«, в Є Ё Ї®«гз ©...}
{‘«гз © б ¤ҐбпвЄ ¬Ё б ¬ ўла ўЁў ©, в ¬ Ї аг бва®зҐЄ ¤®Ў ўЁвм}
WriteLn(& #39;ЙНННННННННННННННННЛННННННННННЛНННННННН
ННННННННЛННННННННННННННЛННННННН»');
WriteLn('є ”?Ћ є Џа®ЇгбЄЁ є ‘।Ё© Ў «« є Љ®«-ў® § ¤ з є ‡ зҐв є');
WriteLn(& #39;МНННННННННННННННННОННННННННННОНННННННН
ННННННННОННННННННННННННОННННННН№');
For i:=1 to FIOCnt do
With Z[i] do
begin
S:='є '+Name+' є ';
Pr:=0; Rz:=0;
Sa:=0; O4:=0;
For j:=1 to 10 do
begin
If not Z[j] then Inc(Pr);
Inc(Sa,Zz[j]);
If Zz[j]>2 then Inc(Rz);
If Zz[j]>=4 then Inc(O4);
end;
Str(Pr,St); {Љ®«-ў® Їа®ЇгбЄ®ў}
S:=S+' '+St+' є';
Str(Sa DIV 10,St); {‘।Ё© Ў ««}
S:=S+' '+St+' є';
Str(Rz,St); {Љ®«-ў® аҐиҐле § ¤ з}
S:=S+' '+St+' є';
If (Zz[9]>=4) and (Zz[10]>=4) and (Rz>=8) and (Pr<=5) and (O4>4) then
S:=S+' „Ђ є' else S:=S+' Ќ…’ є';
WriteLn(S);
end;
WriteLn(& #39;ИНННННННННННННННННКННННННННННКНННННННН
ННННННННКННННННННННННННКНННННННј');
end;
Procedure AOE;
begin
S:='„ ⥪бв Ё§ б«®ў а §¤Ґ«Ґле Їа®Ё§ў®«мл¬ зЁб«®¬ Їа®ЎҐ«®ў.'+
+' ‚뢥бвЁ б«®ў б Ё¤гйЁ¬Ё Ї®¤ап¤ ¤ўг¬п Ј« бл¬Ё. „«Ё®иҐҐҐ... ¦Ёў®в®Ґ.';
{“ЎЁа Ґ¬ "«ЁиЁҐ" Їа®ЎҐ«л}
S:=S+' '; {Џа®ЎҐ« ў Є®жҐ бва®ЄЁ, ®Ўп§ в.}
While Pos(' ',S)<>0 do Delete(S,Pos(' ',S),1);
{„Ґ« Ґ¬ ЎгЄ®ўЄЁ Ў®«миЁ¬Ё}
For i:=1 to Length(S) do
If (Ord(S[i])>159) and (Ord(S[i])<176) then S[i]:=Chr(Ord(S[i])-32)
else
If (Ord(S[i])>223) and (Ord(S[i])<240) then S[i]:=Chr(Ord(S[i])-80);
While Length(S)>1 do
begin
St:=Copy(S,1,Pos(' ',S)-1);
Ok:=False;
i:=1;
While (i<Ord(St[0])) and (not Ok) do
begin
If (St[i] in G) and (St[i+1] in G) then Ok:=True;
Inc(i);
end;
If Ok then
begin
Write(Copy(St,1,i-2));
TextColor(White);
Write(Copy(St,i-1,2));
TextColor(LightGray);
WriteLn(Copy(St,i+1,Length(S)));
end;
Delete(S,1,Pos(' ',S));
end;
end;
Procedure ThirdWordA;
begin
S:='„ ⥪бв Ё§ б«®ў а §¤Ґ«Ґле Їа®Ё§ў®«мл¬ зЁб«®¬ Їа®ЎҐ«®ў.'+
+' ЋЇаҐ¤Ґ«Ёвм зЁб«® б«®ў, зЁ ойЁебп вг ¦Ґ ЎгЄўг, зв® Ё ваҐвмҐ б«®ў®. ?и Є. ?¬г®¤ҐдЁжЁв.';
{“ЎЁа Ґ¬ "«ЁиЁҐ" Їа®ЎҐ«л}
S:=S+' '; {Џа®ЎҐ« ў Є®жҐ бва®ЄЁ, ®Ўп§ в.}
While Pos(' ',S)<>0 do Delete(S,Pos(' ',S),1);
{„Ґ« Ґ¬ ЎгЄ®ўЄЁ Ў®«миЁ¬Ё}
For i:=1 to Length(S) do
If (Ord(S[i])>159) and (Ord(S[i])<176) then S[i]:=Chr(Ord(S[i])-32)
else
If (Ord(S[i])>223) and (Ord(S[i])<240) then S[i]:=Chr(Ord(S[i])-80);
{“¤ «пҐ¬ ЇҐаўлҐ ¤ў б«®ў }
Delete(S,1,Pos(' ',S));
Delete(S,1,Pos(' ',S));
C:=S[1];
{“¤ «пҐ¬ ваҐвмҐ}
Delete(S,1,Pos(' ',S));
Rz:=0;
While Length(S)>1 do
begin
St:=Copy(S,1,Pos(' ',S)-1);
If St[1]=C then
begin
Inc(Rz);
WriteLn(St);
end;
Delete(S,1,Pos(' ',S));
end;
WriteLn('Љ®«ЁзҐбвў® б«®ў а ў® ',Rz);
end;
Procedure IterationCount;
{
‚ўҐ¤Ґл ваЁ ¬ ббЁў Ї®«®¦ЁвҐ«мле ўҐйҐб⢥ле зЁбҐ« Ђ[1:5] B[1:8] C[1:6]
§ ¤ Ґвбп в®з®бвм E:
E=alfa ¤«п н«Ґ¬в®ў ¬ ббЁў Ђ;
E=betta ¤«п н«Ґ¬Ґв®ў ¬ ббЁў ‚;
E=gamma ¤«п н«Ґ¬Ґв®ў ¬ ббЁў C;
Ј¤Ґ alfa,betta,gamma -- Їа®Ё§ў®«м® § ¤ лҐ зЁб« .
¤«п Є ¦¤®Ј® н«Ґ¬Ґв Є ¦¤®© ¬ ваЁжл ўлзЁб«повбп § 票п (Є®аҐм ваҐв쥩
б⥯ҐЁ Ё§ ) , (Є®аҐм ваҐв쥩 б⥯ҐЁ Ё§ ў) , (Є®аҐм ваҐв쥩 б⥯ҐЁ Ё§ б)
б«Ґ¤гойЁ¬ ЁвҐа жЁ®л¬ «Ј®аЁв¬®¬:
1. Y0=x
2. Y1=Y0-((Y0 ў ЄгЎҐ)-X)/3*Y0
3. ЇаЁ |Y1-Y0|>E, Yo=Y1; Ї®ўв®аҐЁҐ б Ї.2;
ЇаЁ |Y1-Y0|<=E, Y1=Y0.
’ॡгҐвбп ¤«п Є ¦¤®Ј® ¬ ббЁў ®ЇаҐ¤Ґ«Ёвм ®¬Ґа н«Ґ¬Ґв , ¤«п
Є®в®а®Ј® зЁб«® ЁвҐа жЁ© Ўл«® ¬ЁЁ¬ «мл¬.
ЋвЇҐз в вм н«Ґ¬Ґвл в®Ј® ¬ ббЁў , ¤«п Є®в®а®Ј® ўлз¬б«Ґл© ®¬Ґа
®Є § «бп ЁЎ®«миЁ¬.
}
begin
For i:=1 to 5 do A[i]:=Random(10);
For i:=1 to 8 do B[i]:=Random(20);
For i:=1 to 6 do Cc[i]:=Random(30);
Sa:=0;
A[1]:=27;
For i:=1 to 5 do
begin
Y:=A[i];
X:=Y-(Y*Y-1)/3;
Rz:=0;
Repeat
Inc(Rz);
Y:=X;
X:=Y-((Y*Y*Y)-A[i])/3*Y;
Until Abs(X-Y)<Alfa;
If Rz>Sa then Sa:=Rz;
end;
end;
Begin
ClrScr;
Randomize;
DigitsCount;
ReplaceA;
After18;
PureStudents;
AOE;
ThirdWordA;
IterationCount;
End.
Автор: SpEctAtOr 1.06.2004 22:19
GLuk ЋѓђЋЊЌЋ… ‘ЏЂ‘?ЃЋЋЋЋЋ!!!ЋЋЋЋЋ!ЋЋ!Ћ!Ћ!ЋЋ!Ћ!Ћ!ЋЋ!Ћ!Ћ!Ћ!Ћ!Ћ!Ћ!Ћ!!!!
ЃЋ‹њ?Ћ… ‘ЏЂ‘?ЃЋЋЋЋЋЋЋЋЋЋ!Ћ!ЋЋ!Ћ!Ћ!Ћ!ЋЋЋЋЋЋЋЋЋЋ!!!!!!!!!!ЋЋЋЋЋЋЋ!
Автор: GLuk 1.06.2004 22:23
Это спасибо по-японски?? ;)
Добавлено позже:
А насчет 16 задачи - это из цикла додумай сам??
Автор: Altair 1.06.2004 22:49
GLuk монстр!
Столько нарешал.
И не лень ему было!
Повышу -ка рейтинг ему...
Автор: GLuk 1.06.2004 23:33
Я б еще и 16-ю решил, только вот сложная она слишком... ;)
Автор: -Spectator- 18.10.2007 15:45
Спасибо тебе нереальное!!! правда наверное долго я с этим спасибо затянул)))
но может именно благодаря тебе я дотянул до 5-го курса)))