PDA

Просмотр полной версии : Задачи по Pascal'у


DIAgen
11.12.2006, 18:38
Не буду объяснять в чем проблема, просто срочно нужно решить задачи по паскалю, я просто не знаю его!

http://rapidshare.com/files/6841239/Pascal.rar.html

Там 17 задач!

Просто срочно нужно, буду блогодарен!

С меня будут +

a1nt
11.12.2006, 19:20
Помогу с радостью, но для начала залей на slil.ru

r0
11.12.2006, 20:01
http://www.mytempdir.com/1110333

r0
11.12.2006, 20:42
!Внимание: номера задач сделанных общими усилиями:

3,4,5,10,11

Ksander
11.12.2006, 20:44
эм а физику ктото решает ? :)

DIAgen
11.12.2006, 20:46
!Внимание: номера задач сделанных общими усилиями:

3,4,5,10,11


Хоть уже чать есть, это уже радует!
Теперь хотя бы девушка не возникает, что я не чего не делаю)))


эм а физику ктото решает ? :)


Может кто нибудь и делает!
НЕ в этом дело, я же просто по человески попросил! (Физику и вышку я сам делал, вот было время)

r0
11.12.2006, 21:03
Давайте пионеры, ухнем дружнее.
Половину репы Гемы я пробью =] просто сам не знаю как одна задачка решается.. это надо мануал брать а мне лень =]

DIAgen
11.12.2006, 21:24
Давайте пионеры, ухнем дружнее.
Половину репы Гемы я пробью =] просто сам не знаю как одна задачка решается.. это надо мануал брать а мне лень =]

Какие то ленивые пионеры, не хотят репы получить)))

Ksander
11.12.2006, 21:34
Может просто мало кто паскаль знает ?

Еслиб у меня был апельсин я бы обязательно поделился (с)

m0le[x]
11.12.2006, 21:57
У меня была на первом курсе похожая на первую... но чуть другие условия там... Вот она (http://slil.ru/23555284) мож всетаки пригодится

DIAgen
11.12.2006, 22:22
Завтра пойду на кафедру информатики буду преподов еб/*цензура*/ть, пускай делают за бабки, а то мне уже надоело читать доки по поскалю (лучше ПШП почитаю)!

m0le[x]
11.12.2006, 22:45
Вот еще кое че на тему типизированного фаила... числа вводятся с клавы в фаил...

program tip_file;

uses crt;

var

fl:file of integer;

new_f: file of integer;

int:integer;

n,i:integer;

sum:integer;

digits:integer;

begin

clrscr;

assign(fl,'f.dat');

{$I-}

rewrite(fl);

{$I+}

if (IOResult=2) or (IOResult=3) or (IOResult=5) then begin

writeln('Oshibka otkrbltija faila!');

end;

write('Vvedite kol-vo: ');

readln(n);

sum:=0;

for i:=1 to 1 do

write('Vvedite ',i,'cifru: ');

readln(digits);

sum:=digits;

for i:=2 to n do begin

write('Vvedite ',i,'cifru: ');

readln(digits);

sum:=sum+(n div digits);

end;

writeln;

write(fl,digits);

close(fl);
end.

з.ы. В свое время с этим Паскалем в институте тоже мозги е**ли... слава богу кончился...

EXSlim
11.12.2006, 23:23
Строки.
2 Посчитайте количество цифр в веденной строке символов. Применяйте подпрограммы.


Var I, Count : Integer;
S : String;

Function check_digit(Symbol : String) : Boolean;
Var Code : integer;
Digit : byte;
Begin
Val(Symbol,Digit,Code);
If Code = 0 Then check_digit:= True Else check_digit:= False;
End;

Begin
WriteLn('Enter string :');
ReadLn(S);
For I:=1 To Length(S) Do
If check_digit(S[i]) Then Inc(Count);
WriteLn('Digits in string : ', Count);
End.

r0
11.12.2006, 23:31
Спасибо EXSlim, учимся читать.

EXSlim
12.12.2006, 01:06
2 r0 Двиг форума сам удаляет пробелы вначале строки, если ты о читабельности

Строки
1 Запросите у пользователя строку, состоящую из нескольких слов, разделенных пробелом, и выведите ее на экран так, чтобы каждое слово начиналось с новой строки.


Var S: String;
I,Count: Integer;
A : Array [1..32] Of String;

Begin

WriteLn('Enter some worlds separated by space: ');
Readln(S);

S:= S+' ';

For I:=1 To Length(S) Do
if S[I]=' ' Then Inc(Count);

For I:=1 To Count Do
Begin
A[I]:= Copy(S,1,Pos(' ',S));
Delete(S,1,Pos(' ',S));
End;

WriteLn('Formated string : ');

For I:=1 To Count Do
WriteLn(A[I]);



Была идея заменить пробелы символом chr(13) - возврат каретки....да не выводятся все слова

r0
12.12.2006, 01:37
Нет я про, что эти задания уже выполнены [ читай мой пост выше ] зря напрягалси =]

EXSlim
12.12.2006, 01:47
на две задачи потратил минут 5, но зато вспомнил что такое паскаль =) а то уже думаю какого компилятор ругается на explode ;)

TaNkist
12.12.2006, 14:18
12. Создайте файл f целых чисел от А до В (значения вводятся с клавиатуры). Проанализировав в программе созданный файл, создайте еще 3 файла:
- содержащий отрицательные числа,
- содержащий положительные числа,
- содержащий нуль.

uses crt;
var f,f1:text;
i,a,b:integer;
begin
clrscr;
readln(a);
Readln(b);
assign(f,'file1.txt');
rewrite(f);
For i:=a to b do writeln(f,i);
reset(f);
assign(f1,'file2.txt');
rewrite(f1);
while not(EOF(F)) do
begin
readln(f,i); if i<0 then writeln(f1,i);
end;
close(f1);
reset(f);
assign(f1,'file3.txt');
rewrite(f1);
while not(EOF(F)) do
begin
readln(f,i); if i>0 then writeln(f1,i);
end;
close(f1);
close(f);
assign(f1,'file4.txt');
rewrite(f1);
write(f1,0);
close(f1);
end.

VampiRUS
12.12.2006, 14:32
на данный момент решены 3,4,5,10,11,12? или ещё какие-то? Попытаюсь вспомнить паскаль, мож что получится.

насколько я понял седьмое задание(как-то там не по русски написано):

uses crt;
const N=5;M=5;
var
Arr:array[1..N,1..M] of integer;
a,b,i,j,sum:integer;
begin
clrscr;
Randomize;
for i:=1 to N do
for j:=1 to M do
Arr[i,j]:=random(256);

repeat
write('vvedite a:');
readln(a);
until((a>0 )and(a<M));

repeat
write('vvedite b:');
readln(b);
until((b>a)and(b<=M));

sum:=0;
for i:=1 to N do
for j:=a to b do
sum:=sum+Arr[i,j];

write('summa:',sum,',kol-vo elementov:',(b-a+1)*N);
readln;
end.


шестое вообще как будто с английского на русский плохим переводчиком переводили, нихера немогу понять к какому месту чётность и нечетность применить.

да и 2 знаю вроде как делать, только постановка задачи опять некоректная:
выбрать учащихся, не допущенных к сдаче следующего экзамена в связи с получением неудовлетворительной оценки по предыдущему экзамену.
а потом уже :
Выдать на экран список абитуриентов, удачно сдавших все экзамены.
и непонятно данные о студентах имеются или их надо сначало вводить.
в общем преподам надо учиться правильно составлять предложения, не теряя логической связи с предыдущими.

вобщем сделал 2 без недопущеных:

uses crt;
const N=4;
type
Student=record
name:string;
inf,math,eng:integer;
end;
var
i:integer;
arr:array[1..N] of Student;
begin
clrscr;
for i:=1 to N do begin
write('vvedite FIO:');
readln(arr[i].name);
write('otsenka po informatike:');
readln(arr[i].inf);
write('otsenka po matematike:');
readln(arr[i].math);
write('otsenka po angliskomu:');
readln(arr[i].eng);
end;
writeln('otlichniki:');
for i:=1 to N do
if((arr[i].inf=5)and(arr[i].math=5)and(arr[i].eng=5))then
writeln(arr[i].name);
readln;
end.

думаю принцип понятен(если надо будет сделать с нудопущенымию).

восьмая, получилось как-то по извращенному, но работает(вроде:)):

const K=5;
N=5;
M=N+K;
var
f,kof,i,j,l:integer;
arr1:array[1..N] of integer;
arr2:array[1..K] of integer;
result:array[1..M] of integer;
begin
{массивы отсортированы по убыванию}
for i:=1 to N do
arr1[N-i+1]:=i*3;
for i:=1 to K do
arr2[K-i+1]:=i*2;
{раскоментить если надо по возрастанию
for i:=1 to N do
arr1[i]:=i*3;
for i:=1 to K do
arr2[i]:=i*2;
}
f:=arr1[1];
i:=2;
while((f=arr1[i])and(i<N))do
inc(i);
kof:=(f-arr1[i])*(-1);
l:=1;
i:=1;
j:=1;
while(l<=M)do begin
while((arr1[i]*kof<=arr2[j]*kof)and(i<=N))do begin
result[l]:=arr1[i];
inc(l);
inc(i);
end;
while((arr2[j]*kof<=arr1[i]*kof)and(j<=K))do begin
result[l]:=arr2[j];
inc(l);
inc(j);
end;
if((i>N)or(j>K))then break;
end;
if(i>N)then
for i:=j to K do begin
result[l]:=arr2[j];
inc(l);
end;
if(j>K)then
for j:=i to N do begin
result[l]:=arr1[j];
inc(l);
end;
for i:=1 to M do
write(result,' ');
readln;
end.


9 в принципе тоже самое только запись начинать с конца массива result

DIAgen
14.12.2006, 18:46
Тему можно закрывать, я так развел все!!!