[Algorytmy] Podaj algorytm, narysuj schemat blokowy

klaudekk
Użytkownik
Użytkownik
Posty: 277
Rejestracja: 30 paź 2010, o 15:06
Płeć: Kobieta
Podziękował: 22 razy
Pomógł: 8 razy

[Algorytmy] Podaj algorytm, narysuj schemat blokowy

Post autor: klaudekk »

proszę o pomoc w rozwiązaniu następujących zadań, ja jestem w tym 'zielona" a musze miec podstawy do nauki :)
Zad.1. a) Dla danego n-elementowego zbioru liczbowego, wyznaczyć element największy MAX i najmniejszy MIN. Zapisac algorytm poszukiwania MAX lub MIN w postaci schematu blokowego. Przyjmując, że operacja porównania jest dominująca, wyznaczyć złożoność obliczeniową tego algorytmu.
b) aby znaleźć rozpiętość zbioru n liczb wystarczy ........... . Możemy w tym celu zastosować poznane algorytmy z a), wówczas do wyznaczenia rozpiętości zbioru n liczb trzeba wykonać ........ porównań.
c)Posługując się zasadą "dziel i zwyciężaj" możemy porównując kolejne pary elementów zbioru dokonać podziału ("dziel") na dwa zbiory kandydatów na MAX i MIN, a następnie znaleźć rozpiętość zbioru, wyznaczyć złożoność obliczeniową takiego algorytmu przyjmując, że n jest liczbą parzystą i sprawdzić czy jest odniesione "zwycięstwo"
Zad 2 pojęcie struktury i dostępu do niej w C na przykładzie.
Zad. 3. Napisać co to jest wywołanie rekurencyjne. Napisać w języku C++ schemat Hornera z wywołaniem rekurencyjnym.
Zad. 4. Narysować schemat blokowy algorytmu, który dla danego zbioru liczb naturalnych wyznacza liczby, których ostatnią cyfrą jest 0 oraz zwraca ich ilość. Zakodować ten algorytm w C++.
zad 5 Napisać w C++ program zawierający funkcję dokonującą zamiany kolejności dwóch liczb wprowadzonych z klawiatury
Ostatnio zmieniony 18 wrz 2011, o 17:54 przez Afish, łącznie zmieniany 1 raz.
Powód: Staraj się lepiej dobierać nazwy tematów, tak by wskazywały o czym jest treść zadania.
Awatar użytkownika
ares41
Użytkownik
Użytkownik
Posty: 6499
Rejestracja: 19 sie 2010, o 08:07
Płeć: Mężczyzna
Lokalizacja: Kraków
Podziękował: 142 razy
Pomógł: 922 razy

[Algorytmy] Podaj algorytm, narysuj schemat blokowy

Post autor: ares41 »

4.
Niech \(\displaystyle{ X}\) będzie naszym zbiorem liczb naturalnych.
Bierzemy z niego kolejno liczby \(\displaystyle{ x_i}\).
Niech \(\displaystyle{ k}\) będzie zmienną typu całkowitego i za \(\displaystyle{ k}\) podstawiamy \(\displaystyle{ x_i \mod 10}\).
Jeśli \(\displaystyle{ k}\) jest zerem , wtedy zwiększamy licznik o jeden i wypisujemy \(\displaystyle{ k}\).
JumpSmerf
Użytkownik
Użytkownik
Posty: 64
Rejestracja: 2 lip 2011, o 15:32
Płeć: Mężczyzna
Lokalizacja: Hrubieszów/Kraków
Podziękował: 2 razy
Pomógł: 9 razy

[Algorytmy] Podaj algorytm, narysuj schemat blokowy

Post autor: JumpSmerf »

1. a) Wprowadzasz liczby i przeszukujesz cały ciąg, przy czym przy każdej liczbie sprawdzasz czy ona jest większa od aktualnie największej (analogicznie dla mniejszych), jeśli tak to zapamiętujesz liczbę. Złożoność czasowa jest liniowa, ponieważ każdą liczbę sprawdzamy tylko raz.
b) Znajdujesz min i max i liczysz różnicę, wykonujesz 2n+1 porównań.
c) Porównujesz liczby parami, mniejsza liczba leci jako kandydat do min, większa do max. Następnie wśród kandydatów do min znajdujesz najmniejszą, a wśród kandydatów do max największą. Następnie rozpiętość = max - min. Łącznie wykonujesz \(\displaystyle{ \frac{3n}{2}}\) porównań.

Starczy ze mnie masz już "podstawę do nauki", zadania są tak banalne, że po chwili szukania w google na pewno znalazłabyś algorytmy. Np.

Kod: Zaznacz cały

http://www.algorytm.org/
.
ODPOWIEDZ