Skocz do zawartości


Zdjęcie

[pascal]krótkie zadanie


  • Zamknięty Temat jest zamknięty
1 odpowiedź w tym temacie

#1 rabarbar25

rabarbar25

    Obserwator

  • 9 postów

Napisano 09 06 2008 - 10:31

mam maly i prymitywny problem. oto tresc zadania:
Napisać program wczytujący liczby całkowite wprowadzane przez użytkownika. Ilość wczytanych
liczb określona na początku (podawana przez użytkownika). Wyszukać największą liczbę. Wypisać
wprowadzone liczby na ekranie stawiając przy największej liczbie znak ?!?. Liczby powinny być
zapamiętane w jednowymiarowej tablicy dynamicznej.

a to moj kod poczatkowy
program Project2;

{$APPTYPE CONSOLE}

uses
  SysUtils;
	 var n: integer;
	 var T: array of integer;
	 var v_max : real;
begin
  writeln(' podaj ile liczb calkowitych wpiszesz:');
  readln(n);
  SetLength(T,n);

  writeln('podaj te liczby oddzielajac je spacja');
  readln;
  writeln;
 
end.


a co dalej ?
jak znalezc najwieksza liczbe w tablicy?
jka ja wydrukowac z "!"

bede bardzo wdzieczny za szybka pomoc
Pozdrwaiam

  • 0

#2 Marko_

Marko_

    Stały użytkownik

  • 279 postów

Napisano 13 06 2008 - 00:57

Proponuję coś takiego.
Deklaracje:
var
 tab:array of integer;
 i,j,max_,min_,zm_pom:integer;
 c:string[5];
 znak:char;

Program:
i:=0;	  //Przygotowanie zmiennej
   writeln('Podaj kolejno cyfry i wcisnij ENTER, Spacja i ENTER - koniec wprowadzania cyfr');
   repeat	//Początek pętli
	 write('Podaj ',i+1,'  cyfre  -   ');
	 readln(c); //Wczytanie do zmiennej typu string o długości 5 znaków cyfry lub innych znaków
	 znak:=c[1]; //Pobranie do zmiennej typu char pierwszego elementu stringu c
	 if ord(znak)=32 then //jeżeli dziesiętni e  c=32 to wciśnięto przycisk spacji {zobacz tablicę ASCII}
		begin //jest spacja koniec pętli
		  writeln(' Koniec wprowadzania cyfr');
		  break; //Wyjście z pętli
		end;
	 writeln;
	 j:=strtoint(c);// zamiana stringu na integer UWAGA musisz dopisać jeszcze obsługę błędów jeśli "c" nie jest cyfrą  
	 inc(i); //zwiększ i o 1 czyli i:=i+1;
	 setlength(tab,i); powiększ tablicę o jeden element gdy  setlength(tab,1) tablica ma jeden element czyli tab[0]
	 tab[i-1]:=j;  /Indeksowanie tablicy zaczynamy od pierwszego elementu zawsze "0" 
   until false; //Pę tla nieskończona bez warunku wyjścia
	 max_:=0;
	 min_:=maxint;
	 for j:=0 to high(tab) do // high(tab) jest to największy index w tablicy
	 begin
	   if max_<tab[j] then max_:=tab[j]; //szukanie najwiekszego elementu tablicy tab
	   if min_>tab[j] then min_:=tab[j];   //szukanie najmniejszego elementu tablicy tab
	 end;
	 writeln;
	 writeln;
	 writeln('Wprowadzono ',i,'cyfr');
	 writeln('Nawieksza cyfra jest   !',max_,'!');
	 writeln('A najmniejsza to		  !',min_,'!');
	 writeln;
	 writeln('Zawartosc tablicy');
	 for i:=0 to high(tab)do
	 write(' ',tab[i]);
	 writeln;
	 writeln('Koniec nacisnij ENTER');
	 readln;


  • 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