PDA

View Full Version : Някой да може да програмира на Паскал?



oem
11-12-2008, 19:37
Търсия някой програмист на Паскал. трябва ми за решаването на една задача. В университета съм учил, но не помня нищо вече. Ако някой може да помогне?

bass
11-12-2008, 20:08
Е тука са твойте хора :-)
http://clubs.dir.bg/postlist.php?Board=Delphi&GDirId=6734f63ea676382e73590859ba061adc

Бих се топнал с кеф в тая носталгия, ма нещо не го виждам във времето...
Пусни се пак задачката, ако искаш.

oem
11-12-2008, 21:46
Даден и двумерен масив W(4,4). Да се променят елементите на масива по следния начин: Всеки елемент със стойност по-малка от 1,1 да се замести с произведението на стойноста на елемента и числото 6. останалите елементи да се заместят със сумата от индексите на елемента минус числото 2,6. Да се разпечатат по редове зададения масив и променения масив. Да се изброят нулевите елементи от всеки стълб на променливия масив и резултатъ да се запише в нов масив V. Да се отпечатат стойностите на новия масив.

bass
12-12-2008, 13:19
С къв компилатор работите? Аз иам некво Делфи, ама да избегнем излишни движения (пак казвам, ако остане време.)...

oem
12-12-2008, 19:20
Трябва ми за понеделник. Ми Борланд Паскал некъв.

bass
13-12-2008, 01:14
Ми е ти един от хилядите варианти за написване на тая учебникарска дивотия (скрийншот - закачен най-долу). Вервам да се справиш да си я фризираш по-нататък. Тая директива APPTYPE можеш да я разкараш ако компилираш под ДОС.



program Arrays;

{$APPTYPE CONSOLE}

uses
SysUtils;

type
TArray2D = array[0..3, 0..3] of double;
TArray1D = array[0..3] of integer;

var
//The "given" array
W: TArray2D = ((0,1,2,3),(4,5,6,7),(8,9,10,11),(12,13,14,15));
//Initialising the zero-counting array
V: TArray1D = (0,0,0,0);
nCol, nRow: integer;
cKey: char;

procedure PrintArray(sHeader: string; var anArray: TArray2D);
begin
WriteLn(''); WriteLn(sHeader);

for nCol := 0 to 3 do
begin
for nRow := 0 to 3 do Write(W[nCol, nRow]:7:1, ' ');
WriteLn('');
end;
end;

begin
//Printing the given array
PrintArray('Initial Data:', W);

//Performing replacements
for nCol := 0 to 3 do
for nRow := 0 to 3 do
begin
if W[nCol, nRow] < 1.1 then
W[nCol, nRow] := W[nCol, nRow]*6
else begin
W[nCol, nRow] := nCol + nRow - 2.6
end;

//Counting zeros "on the fly"
if W[nCol, nRow] = 0 then V[nCol] := V[nCol] + 1;
end;

//Printing the resulting array
PrintArray('Processed Data:', W);

//Printing the zero-count array
WriteLn(''); WriteLn('Zero values in every column:');
for nCol := 0 to 3 do Write(V[nCol]:7, ' ');
WriteLn('', '');

//Wait...
WriteLn(''); Write('Press Enter to exit...');
Read(cKey);
end.