Skocz do zawartości


Zdjęcie

[Turbo pascal]Parę programów


  • Zamknięty Temat jest zamknięty
4 odpowiedzi w tym temacie

#1 kobragsm

kobragsm

    Obserwator

  • 8 postów

Napisano 21 04 2008 - 23:57

Witam. Mam do napisania następujące programy umożliwiające:

- sprawdzenie rozmiaru pamięci przydzielanej dla dowolnego rodzaju zmiennych (np.: byte, real),
- wyznaczenie ilości elementów nieparzystych na głównej przekątnej macierzy oraz odwrócenie kolejności elementów macierzy,
- sortowanie elementów wektora w kolejności rosnącej,

Nie potrafie sobie z tym poradzić. czy mógłby ktoś pomóc?

Pozdrawiam serdecznie.
Będę niezmiernie wdzięczny

  • 0

#2 Marko_

Marko_

    Stały użytkownik

  • 279 postów

Napisano 22 04 2008 - 19:20

Witam :teehee:

- sprawdzenie rozmiaru pamięci przydzielanej dla dowolnego rodzaju zmiennych (np.: byte, real),


var
i:integer;
li:longint;
r:real;
ch:char;
pch:pchar;
p:pointer;

b:byte;
c:string;
begin

writeln('Przestrzeä zajmowana przez zmienne "podstawowe" w Bajtach i ich zakresy');
writeln('Integer - ',sizeof(i),'	Max ', high(i),'	   Min ', Low(i));
writeln('Longint  - ',sizeof(li),'   Max ', high(li),'  Min ', Low(li));
writeln('Real	- ',sizeof(r));
writeln('Char	- ',sizeof(ch));
writeln('Byte	- ',sizeof(b),'	Max ', high(b),'		 Min ', Low(b));
writeln('String  - ',sizeof(c));
writeln('Pointer  - ',sizeof(p));
writeln('Pchar  - ',sizeof(pch));
readln;
end.

wyznaczenie ilości elementów nieparzystych na głównej przekątnej macierzy


Przykładowa macierz:

var
Macierz:array[1..3,1..3] of byte;

Sprawdzanie czy element jest parzysty czy nie:

if (zm mod 2)=0 then
 writeln('zmienna zm jest parzysta') else writeln('zmienna zm jest nieparzysta');
gdzie zm jest to zmienna typu całkowitego;

definicja:
Główną przekątną macierzy kwadratowej A nazywamy wektor (a_{11}, a_{22}).- mówimy o macierzach kwadratowych.
Czyli program ma postać :

Program macierze;
var
parzyste,nieparzyste:byte;
a,b,i:byte;
macierz:array[1..3,1..3] of byte;{macierz 3x3 element˘w}
przekatna:array[1..3] of byte; {przekĄtna ma trzy elementy poniewarz matryca jest 3x3}

{Funkcja sprawdza czy zmienna zm jest parzysta czy nie}
function parzystosc(zm:byte):boolean;
begin

  if (zm mod 2)=0 then
	 parzystosc:=true  {Parzysta}
  else
	 parzystosc:=false {Nieparzysta}
end;

begin
  randomize;{deklaracja zarodka}

{Wypeˆnianie macierzy losowymi cyferkami}
 for a:=1 to 3 do
 for b:=1 to 3 do
	 macierz[a,b]:=random(10);

{Wy˜wietlenie macierzy}
 for a:=1 to 3 do
 begin
 for b:=1 to 3 do
	write('  ',macierz[a,b],' ');
 writeln;
  end;

b:=1;
{Wyznaczenie gˆ˘wnej przekĄtnej macierzy}
for a:=1 to 3 do
 begin
   przekatna[a]:=macierz[a,b];
   inc(b);
 end;

{Wy˜wietlenie przekĄtnej macierzy}
writeln('Wy˜wietlenie przekĄtnej macierzy');
for a:=1 to 3 do
	write('	',przekatna[a]);

writeln;
writeln;
{Selekcja parzyste nieparzyste}
parzyste:=0;
nieparzyste:=0;
for a:=1 to 3 do
if parzystosc(przekatna[a]) then
   begin
	 inc(parzyste);
	 writeln(przekatna[a],' - Ten element jest parzysty');
   end
else
   begin
	 inc(nieparzyste);
	 writeln(przekatna[a],' - Ten element jest nieparzysty');
   end;
 writeln;
 writeln('Nieparzystych element˘w jest  ',nieparzyste);
 writeln('Parzystych element˘w jest	',parzyste);

 readln;

 end.


Ok może wystarczy chciałbym abyś zaproponował swoje pomysły na tematy:

odwrócenie kolejności elementów macierzy

i

sortowanie elementów wektora w kolejności rosnącej,


Jakieś założenia cokolwiek a pomogę mam nadzieję że nie liczysz tylko na tzw. gotowce ???

pomocne linki:
http://www.komputery-internet.net/turbo/wektory.php
http://pl.wikipedia.org/wiki/Wektor
http://tom700.fm.interia.pl/podst.htm
http://pl.wikipedia.org/wiki/Macierz

  • 0

#3 kobragsm

kobragsm

    Obserwator

  • 8 postów

Napisano 22 04 2008 - 20:48

Dziękuję Ci bardzo dobry człowieku za pomoc :teehee:

Co do wektora to tak bym to widział... tylko coś mi się nie kompiluje

program wektory;
var a:array[1..100] of real
x,c :real;
n, k, i : integer;
{-------}
write('liczba elementow wektora');
read n
write ('podaj elementy wektora');
read (x(i), i=1,n);
random (x);
k:= n, 2, -1
i:= 1, k-1
if (x(i)>x(i+1)) then begin
c := x(i)
x(i) := x(i+1)
x(i+1) := c
end;
end;
i:= 1, n
write x(i);
end.

a co do 'odwrócenie kolejności elementów macierzy'

for a:=i downto 1 do
begin for b:=i downto 1 do
write(macierz[a,b],'  ');
writeln;
end;
readkey;
end.

natomiast co do napisanego przeze mnie zadani 3 proszę o pomoc
  • 0

#4 Marko_

Marko_

    Stały użytkownik

  • 279 postów

Napisano 23 04 2008 - 21:31

Jeśli temat aktualny sprecyzuj co chcesz zrobić w punktach:
- odwrócenie kolejności elementów macierzy
- sortowanie elementów wektora w kolejności rosnącej
  • 0

#5 kobragsm

kobragsm

    Obserwator

  • 8 postów

Napisano 24 04 2008 - 21:12

Juz nieaktualny. Uporałem się w końcu z problemem.

Można zamknąć.

Dziękuję i pozdrawiam.

  • 0

Zobacz więcej tematów z tagiem: Turbo Pascal



Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych