piątek 21 stycznia 2022 imieniny Agnieszki i Jarosława 1976 - Pierwszy lot naddźwiękowych samolotów Concorde
Do końca roku pozostało: 0 dni
Informatyka
Interaktywna mapa szkół
Język polski Historia WOS Sztuka (plastyka i muzyka) Języki obce Religia i etyka
Matematyka Fizyka i astronomia Chemia Biologia Przyroda Geografia Technika Informatyka
Przedmioty zawodowe WF Ścieżki edukacyjne Wychowanie przedszkolne Nauczanie zintegrowane Więcej
Algorytmy i programowanie - zestaw zadań

Wyszukiwanie największego elementu

Użytkownik wprowadza liczbę naturalną n oraz n-elementową tablicę liczb rzeczywistych A. Podaj algorytm znajdowania wartości największego elementu w tablicy A. (Np.: po wprowadzeniu poniższych danych (liczba 5 oznacza rozmiar tablicy):
     5 : 12 3 19 10 7

Specyfikacja algorytmu:
 Dane wejściowe:
 liczba naturalna n
 tablica liczb rzeczywistych A posiadająca n elementów
 Dane wyjściowe:
 liczba rzeczywista – największy element tablicy A

a)    Przedstaw ten algorytm w formie opisu kolejnych kroków.

b)    Zaprezentuj ten algorytm w formie schematu blokowego.

c)    Napisz program realizujący ten algorytm w wybranym przez siebie języku programowania
       (Pascal, C lub C++). Oto przykład działania takiego programu:

       Podaj n:  5
       Podaj elementy tablicy:  12  3  19  10  7
        Największy element = 19
 



    

Przykładowe rozwiązanie

Potrzebne będą nam dwie zmienne pomocnicze: i oraz max. Liczba naturalna i oznaczać będzie numer kolejnego elementu tablicy A, natomiast liczba rzeczywista max będzie przechowywać wartość największego znalezionego do tej pory elementu tablicy. Potrzebne jest również uściślenie sposobu numeracji elementów tablicy: od 1 do n (jak w języku Pascal/Delphi) albo od 0 do n – 1 (jak w językach C/C++, Java, Javascript itp.). Obydwa sposoby są równie popularne, wybierzemy jednak sposób pierwszy.

Działanie algorytmu opiera się na następującej zasadzie. Najpierw zmiennej max przypisujemy wartość pierwszego elementu tablicy czyli A[1]. Następnie przeglądamy kolejno pozostałe elementy tablicy – jeśli dany element okaże się większy od max, wtedy zmienna max otrzymuje jego wartość. W rezultacie po zakończeniu przeszukiwania tablicy zmienna max ma wartość taką samą, jak największy element tablicy.

Zmienne pomocnicze:
 liczba naturalna i – numer kolejnego elementu tablicy A
 liczba rzeczywista max – największy znaleziony
 do tej pory element tablicy A
Notacja:
 elementy tablicy są numerowane od 1 do n


Opis kolejnych kroków – pkt a)

Krok 1:   Wczytaj liczbę n oraz elementy tablicy A[1], ..., A[n].
Krok 2:   Zmiennej max przypisz wartość A[1]. Zmiennej i przypisz wartość 2.
Krok 3:   Jeśli i jest większe od n, wtedy wypisz wartość zmiennej max
 i zakończ działanie algorytmu.
Krok 4:   Jeśli A[i] jest większe od max, wtedy zmiennej max przypisz wartość A[i].
Krok 5:   Powiększ o 1 wartość zmiennej i, po czym przejdź do kroku 3.

 

Schemat blokowy – pkt b)

 

Program w języku Pascal – pkt c)

program NajwiekszyElement;
 
{ Znajdowanie największego elementu w tablicy }

const ROZMIAR = 1000;
var
  A: array [1..ROZMIAR] of real;
  max: real;
  n, i: integer;

begin
write('Podaj n: ');
readln(n);
write('Podaj elementy tablicy: ');
for i:=1 to n do
  read(A[i]);
max := A[1];
for i:=2 to n do
  if A[i]>max then
   
max := A[i];
writeln('Największy element = ',max)
end.

Uwaga: Stała ROZMIAR określa maksymalną liczbę elementów tablicy. 

 

Program w języku C++ – pkt d)

// Znajdowanie największego elementu w tablicy 

#include <iostream>

#define ROZMIAR 1000

main()
{
  int n;
  double A[ROZMIAR], max;
 
cout << "Podaj n: ";
  cin >> n;
  cout << "Podaj elementy tablicy: ";
  for(int i=0; i<n; i++)
    cin >> A[i];
  max = A[0];
  for(int i=1; i<n; i++)
   
if(A[i]>max)
     
max = A[i];
  cout << "Największy element = " << max;

            }

 

Uwaga: Stała ROZMIAR określa maksymalną liczbę elementów tablicy. W języku C++ elementy tablicy są numerowane od zera, stąd nieznaczna modyfikacja algorytmu. 




Autor: dr Andrzej Dyrek, mgr Agnieszka Tarnówka-Stec
Komentarze + Dodaj komentarz
  • W Pascalu jak tworzy się instrukcje złozoną to poprzedza sie ją słowem begin, Informatyk (odpowiedzi: 0)
  • Nawiasem mówiac schemat blokowy nie do tego problemu totalna porazka.
  • C++, Animatex (odpowiedzi: 0)
  • C++ jest podobne do języka PAWN
  • SIŁA!, SIŁA! (odpowiedzi: 0)
  • Biorę Double-Blast`a i nie wiem co się dzieje...
  • algorytmy, Pan:** (odpowiedzi: 0)
  • nie wiem o co chodzi :PP
  • Poprawa błędu w C++!, Gniewo (odpowiedzi: 0)
  • #include <iostream> using namespace std; int main() Poprawcie ten początek wtedy rusza. A tak na marginesie to nie wiem jak wy te dzieci do nauki ścisłych przedmiotów chcecie jeżeli zamieszczacie listing nie sprawdzony. Pozdraiwiam!
  • Niezgodność ze standardami., Bronek (odpowiedzi: 0)
  • W przykładzie Java Script powinno być tak. <script language="JavaScript> </script>
  • w c++ liczona jest suma, a nie srednia, * znaczy, że muszę to pole podać? (odpowiedzi: 0)
  • w sumie to tyle... zapomnieli podzielić przez n ;)
  • gggg, gggg (odpowiedzi: 0)
  • co za nudy
  • Blad ???, Wojtas (odpowiedzi: 6)
  • Mam pytanie, czemu w kompilatorze Dev-C++ wyskakuje mi blad, podczas kompilacji ??
  • algorytm c+, student politechnika (odpowiedzi: 0)
  • buhahahhaha. Niezly portal i niezle ucza:) W szczegolnosci podobaja mi sie programy w c++. Ciekawe tylko czy ten doktor, ktory sie pod tym podpisuje kiedykolwiek mial indeks wyzszej uczelni w reku bo juz na pewno nie kierunku informatycznego. Krotko mowiac no comment;
  • schemat blokowy jest od innego zadania, aa (odpowiedzi: 0)
  • a
  • bład w schemacie blokowym algorytmu max(a,b,c,d), Agnieszka (odpowiedzi: 0)
  • schemat blokowy punkt b) nie przedstawia rozwiązania zadania.
  • Kto to pisał?, uczen 2 gimnazjum (odpowiedzi: 2)
  • Nie chciałbym być nie uprzejmy, zawsze uczy sie od tyłu? Przecież takie zadanie można rozwiązać dużo szybciej, stosując konstrukcje języka...
 
Nasi partnerzy:
MEN SchoolNet eTwinning Związek Powiatów Polskich PCSS
Cisco OFEK Przyjazna Szkoła Fundacja Junior FIO CEO
Parafiada net PR Orange IMAX Cinema City WSP TWP
IMAGE PPI-ETC ArcaVir Master Solution Device


Projekt Polski Portal Edukacyjny Interkl@sa
powstał i był realizowany w latach 2000-2011 dzięki wsparciu
Polsko-Amerykańskiej Fundacji Wolności.

W ramach naszej witryny stosujemy pliki cookies w celu świadczenia Państwu usług na najwyższym poziomie, w tym w sposób dostosowany do indywidualnych potrzeb. Korzystanie z witryny bez zmiany ustawień dotyczących cookies oznacza, że będą one zamieszczane w Państwa urządzeniu końcowym. Możecie Państwo dokonać w każdym czasie zmiany ustawień dotyczących cookies. Więcej szczegółów w naszej "Polityce Prywatności".


Pytania i uwagi: portal@interklasa.pl

Regulamin portalu /  Polityka prywatności /  Ochrona własności intelektualnej /  Zasady korzystania / 
Wyłączenie odpowiedzialności /  Biuro prasowe /  Zasady współpracy /  Redakcja /  Kontakt

Przejdź na stronę ucznia Przejdź na stronę nauczyciela Przejdź na stronę rodzica Certyfikat sieciaki.pl Przyjazna strona kidprotect.pl