Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Решения задач

16K
05 апреля 2006 года
unltd
6 / / 05.04.2006
Такие задачи:

1. Даны три массива целых чисел A[10] B[15] C[20].
Найтии сумму всех максимальных элементов массива.

2. Пусть дан файл целых чисел F1. Создайте два новых файла F2, F3, из положительных и отрицательных чисел соответственно. Если какой то из созданных файлов окажется пустым, то сообщите об этом.

Народ, помогите плизз, это всего то 1-й курс..
Просто я не рублю в этом.. А допуск к экзамену нужен, сами понимаете.. :-S
1.8K
06 апреля 2006 года
LastSoul
279 / / 28.12.2005
Program PROG;
Uses Crt;
Var A:Array [1..10] Of Integer;
B:Array [1..15] Of Integer;
C:Array [1..20] Of Integer;
sum,i,max:Integer;
F1,F2,F3:File Of Integer;
Begin
ClrScr;
Randomize;

{1. Даны три массива целых чисел A[10] B[15] C[20].
Найтии сумму всех максимальных элементов массива.}


For i:=1 To 10 Do Begin A[ i]:=Random(10); Write(A[ i]:2); End;
WriteLn;
For i:=1 To 15 Do Begin B[ i]:=Random(10); Write(B[ i]:2); End;
WriteLn;
For i:=1 To 20 Do Begin C[ i]:=Random(10); Write(C[ i]:2); End;
WriteLn;
max:=A[1];
For i:=1 To 10 Do If max<A[ i] Then max:=A[ i];
sum:=max;
max:=B[1];
For i:=1 To 15 Do If max<B[ i] Then max:=B[ i];
Inc(sum,max);
max:=C[1];
For i:=1 To 20 Do If max<C[ i] Then max:=C[ i];
Inc(sum,max);
WriteLn('Сумма максимальных чисел: ',sum);


{2. Пусть дан файл целых чисел F1. Создайте два новых файла F2, F3, из положительных и отрицательных чисел соответственно. Если какой то из созданных файлов окажется пустым, то сообщите об этом.}

Assign(F1,'F1.file');
Assign(F2,'F2.file');
Assign(F3,'F3.file');
ReWrite(F1); ReWrite(F2); ReWrite(F3);
For i:=1 To 1 Do
Begin
max:=Random(10)-9;
Write(F1,max);
If max<0 Then Write(F3,max) Else Write(F2,max);
End;
If FileSize(F2)=0 Then WriteLn('Файл с положительными числами пустой!');
If FileSize(F3)=0 Then WriteLn('Файл с отрицательными числами пустой!');
Close(F1); Close(F2); Close(F3);
ReadKey;
End.
16K
06 апреля 2006 года
unltd
6 / / 05.04.2006
Блин..
Спасибо тебе.
Но не мог бы ты решить эти задачи на уровне 1-го курса, а то мы такого ваще не проходили..
Преподы скажут, что скатал.. и будут грузить..
Ещё раз, благодарен.
1.8K
06 апреля 2006 года
LastSoul
279 / / 28.12.2005
Да я даже незнаю как код полегче сделать :o , но вот что могу предложить:
1) вместо Inc(sum,max); напиши sum:=sum+max;
2) вместо Write(#[ i]:2); напиши Write(#[ i]+' '); (# - от A до C)
3) убрать Randomize и Random(), но это для тебя же неудобства будет предоставлять (придется вручную числа в массивы вводить)

А если это не поможет, то надо будет учить Pascal, чтоб препод не загрузил... ;)
16K
06 апреля 2006 года
unltd
6 / / 05.04.2006
Ооооу Круууто!!! Я сдал один ХВОСТ!!
LastSoul Спасибо тебе огромное!!
Думал всё..
Но она(преподша) дала ещё одну задачку, сказала, решишь, объяснишь.. поставлю "зачёт".
Если кто возьмётся, то..
Вот задача:
---------------------------------------------
С клавиатуры вводится две последовательности чисел. Завести их в две очереди и выдать ответ - равны ли они ?!
---------------------------------------------
Заранее Благодарен, только пожалуйста, как можно проще, 1-й курс.
1.8K
06 апреля 2006 года
LastSoul
279 / / 28.12.2005
Цитата:
Originally posted by unltd
---------------------------------------------
С клавиатуры вводится две последовательности чисел. Завести их в две очереди и выдать ответ - равны ли они ?!
---------------------------------------------


Что значит равны???
1) Равны по количеству чисел в последовательностях
2) Равны: сумма чисел пос-ти 1 = сумма чисел пос-ти 2

16K
06 апреля 2006 года
unltd
6 / / 05.04.2006
Цитата:
Originally posted by LastSoul
Что значит равны???
1) Равны по количеству чисел в последовательностях
2) Равны: сумма чисел пос-ти 1 = сумма чисел пос-ти 2



Я думаю, что это значит:
Равен каждому элементу с таким же порядковым номер из другой последовательности.
По идее так должно быть.

1.8K
06 апреля 2006 года
LastSoul
279 / / 28.12.2005
Цитата:
Originally posted by unltd
Я думаю, что это значит:
Равен каждому элементу с таким же порядковым номер из другой последовательности.
По идее так должно быть.


Код:
[COLOR=gray]
Uses Crt;
Const n=10;
Var A:Array [1..n] Of Integer;
    B:Array [1..n] Of Integer;
    i:Integer;
Label Finish,Finish2;
Begin
 ClrScr;
 WriteLn('Ввод первой последовательности чисел:');
 For i:=1 To n Do ReadLn(A[ i]);
 ClrScr;
 WriteLn('Ввод второй последовательности чисел:');
 For i:=1 To n Do ReadLn(B[ i]);
 ClrScr;
 For i:=1 To n Do If A[ i]<>B[ i] Then GoTo Finish;
 WriteLn('Последовательности равны!');
 GoTo Finish2;
 Finish:
 WriteLn('Последовательности не равны!');
 Finish2:
 ReadLn;
End.
[/COLOR]

Единственная сложность для тебя это метки (Label), если ты конечно не умеешь с ними работать, но и с этим недолго разобраться...
А в остальном - проще некуда

16K
07 апреля 2006 года
rekax
4 / / 07.04.2006
Цитата:
Originally posted by LastSoul
Код:
[COLOR=gray]
Uses Crt;
Const n=10;
Var A:Array [1..n] Of Integer;
    B:Array [1..n] Of Integer;
    i:Integer;
Label Finish,Finish2;
Begin
 ClrScr;
 WriteLn('Ввод первой последовательности чисел:');
 For i:=1 To n Do ReadLn(A[ i]);
 ClrScr;
 WriteLn('Ввод второй последовательности чисел:');
 For i:=1 To n Do ReadLn(B[ i]);
 ClrScr;
 For i:=1 To n Do If A[ i]<>B[ i] Then GoTo Finish;
 WriteLn('Последовательности равны!');
 GoTo Finish2;
 Finish:
 WriteLn('Последовательности не равны!');
 Finish2:
 ReadLn;
End.
[/COLOR]

Единственная сложность для тебя это метки (Label), если ты конечно не умеешь с ними работать, но и с этим недолго разобраться...
А в остальном - проще некуда


Вообще-то код непральный...там нужно было в ОЧЕРЕДИ засылать...а так прога строк на 6..через рекурсию

1.8K
07 апреля 2006 года
LastSoul
279 / / 28.12.2005
Цитата:
Originally posted by rekax
Вообще-то код непральный...там нужно было в ОЧЕРЕДИ засылать...а так прога строк на 6..через рекурсию


чет я несовсем понял насчет очередей :( :o

16K
07 апреля 2006 года
rekax
4 / / 07.04.2006
Цитата:
Originally posted by LastSoul
чет я несовсем понял насчет очередей :( :o


Ну unitd писал что задание: ввести две последовательности чисел...Записать их в очереди и сравнить...в очереди правда глупо записывать,но в массивы - тоже не выход,а вдруг надо будет ввести последовательность большего размера чем n...короче всё конечно зависит от задания...но такие задачи надо через списки решать, вот.

16K
08 апреля 2006 года
unltd
6 / / 05.04.2006
Кому интересно, то вот эта задача на с последовательностями и очередями :)

Program un;
Uses Crt;
type pel=^el;
el=record
a:integer;
next:pel;
end;
var Last1,Och,Last2,First1,First2:pel;
var i,N,j:integer;
begin
j:=0;
Clrscr;
Writeln ('***Vvedite kol-vo elementov ocheredi***');
Readln (N);
Writeln ('Vvedite 1-i element 1-i ocheredi');
new(First1);
Read(First1^.a);
First1^.next:=nil;
last1:=First1;
Writeln ('Vvedite 1-i element2-i ocheredi');
new(First2);
Read(First2^.a);
First2^.next:=nil;
last2:=First2;
if first1^.a=first2^.a then j:=j+1;
for i:=2 to N do
begin
Writeln ('Vvedite',i,'i element 1i ocheredi');
read(och^.a);
och^.next:=nil;
last1^.next:=och;
last1:=och;
New(Och);
Writeln ('Vvedite',i,'i element 2i ocheredi');
read (och^.a);
och^.next:=nil;
last2^.next:=och;
last2:=och;
if last1^.a=last2^.a then j:=j+1;
end;
if j=n then Writeln ('***Ocheredi ravni***') else Writeln ('***Ocheredi HE ravni***');
Readln;
end.
16K
09 апреля 2006 года
rekax
4 / / 07.04.2006
Цитата:
Originally posted by unltd
Кому интересно, то вот эта задача на с последовательностями и очередями :)

Program un;
Uses Crt;
type pel=^el;
el=record
a:integer;
next:pel;
end;
var Last1,Och,Last2,First1,First2:pel;
var i,N,j:integer;
begin
j:=0;
Clrscr;
Writeln ('***Vvedite kol-vo elementov ocheredi***');
Readln (N);
Writeln ('Vvedite 1-i element 1-i ocheredi');
new(First1);
Read(First1^.a);
First1^.next:=nil;
last1:=First1;
Writeln ('Vvedite 1-i element2-i ocheredi');
new(First2);
Read(First2^.a);
First2^.next:=nil;
last2:=First2;
if first1^.a=first2^.a then j:=j+1;
for i:=2 to N do
begin
Writeln ('Vvedite',i,'i element 1i ocheredi');
read(och^.a);
och^.next:=nil;
last1^.next:=och;
last1:=och;
New(Och);
Writeln ('Vvedite',i,'i element 2i ocheredi');
read (och^.a);
och^.next:=nil;
last2^.next:=och;
last2:=och;
if last1^.a=last2^.a then j:=j+1;
end;
if j=n then Writeln ('***Ocheredi ravni***') else Writeln ('***Ocheredi HE ravni***');
Readln;
end.


Ну...код на троечку с минусом))и очереди здесь не используются...а сделано при помощи списков.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог