2.2. Opracowywanie algorytmów

Objaśnienia: W każdym z poniższych zadań stosuj następujące zalecenia:
  1. Określ jakie zmienne są niezbędne, sporządź ich listę z dokładnymi objaśnieniami roli każdej zmiennej np.:
    N = liczba obiegów (cykli) pętli
    I = numer obiegu
    . . . . . . .
  2. Zastanów się jakie operacje muszą być wykonane jednorazowo na początku czyli przed pętlą?
  3. Co ma być wielokrotnie powtarzane (czyli wewnątrz pętli)?
  4. Co ma być jednorazowo wykonane na końcu (poza pętlą)?
  5. Każdy próbny wariant algorytmu testuj na konkretnych danych liczbowych
    w identyczny sposób jak przed chwilą dokonywałeś realizacji działań w/g podanego algorytmu.

Algorytmy z życia: Algorytmy numeryczne:

Narysuj schemat blokowy z zastosowaniem rozgałęzień warunkowych i pętli (tam gdzie to potrzebne):

Zad.Z1)
Zaliczanie semestru przez: uzyskiwanie zaliczeń z N przedmiotów z możliwością dwukrotnego poprawiania danego zaliczenia.

Zad.Z2)
Jaja sadzone na śmietanie: (8 jaj, szklanka śmietany, łyżka mąki)
Śmietanę mieszając z mąką zagotować na patelni. Jaja umyte wbijać kolejno do filiżanki i wlewać na patelnię. Przykryć i gotować na wolnym ogniu aż białko się zetnie.

Zad.Z3)
Masa tortowa: (6 jaj, szklanka cukru, 5 łyżeczek kakao)
Żółtka oddzielić od białek i ucierać z cukrem aż do białości. Nastepnie dalej ucierając dodawać po jednej łyżeczce kakao.

Zad.Z4)
Opisz co należy robić ekran komputera jest czarny mimo, że komputer jest włączony.

Zad.Z5)
Sporządź algorytm swoich porannych działań w zależności od dnia tygodnia.

Zad.Z6)
Sporządź algorytm wykrywania i usuwania przyczyny nie świecenia lampy.

Zad.Z7)
Sporządź algorytm przyszywania guzika.

Zad.Z8)
Sporządź algorytm przyrządzania soku z marchwi na sokowirówce (skrobanie, płukanie, krajanie, wirowanie)

Zad.Z9)
Sporządź algorytm przyrządzania śniadania

Zad.Z10)
Jak wyobrażasz sobie optymalny algorytm zdobywania żony.

Opracuj algorytm lub program:

Cz.1. Podstawowe zadania obliczeniowe:

Objaśnienia: Wszystkie algorytmy lub programy z tej grupy mają być napisane w trzech wariantach a mianowicie:
a) obliczenia jednorazowe,
b) obliczanie dowolną liczbę razy aż do wprowadzenia zera jako jednej z danych,
c) drukowanie tabelki, zawierającej ciąg wartości jednej z danych (generowany na podstawie danych wartości Xpocz, Xkonc, Dx) oraz ciąg wyników.
W każdym wariancie należy zapewnić zrozumiałą postać żądań danych oraz wydruków!

Zad.P1)
Napisać 3 warianty programu (patrz "Objaśnienia") do obliczania drogi w ruchu jednostajnie przyspieszonym z prędkością początkową Vo.

Zad.P2)
2. Napisać 3 warianty programu (patrz "Objaśnienia") do obliczania siły przyciągania grawitacyjnego dwu danych mas M1 i M2, według wzoru:p2.gif

Zad.P3)
3. Napisać 3 warianty programu (patrz "Objaśnienia") do obliczania momentu bezwładności przekroju eliptycznego:p3.gif gdzie: a = półoś duża, b = półoś mała.


Cz.1. Zadania poziomu 2:

Zad.N1)
Dany jest ciąg dowolnych liczb zawierający N elementów. Należy rozdzielić go na dwa ciągi, tak aby w jednym umieszczane były tylko liczby ujemne a w drugim nieujemne. Na końcu algorytm ma podać ile było liczb ujemnych a ile nieujemnych. Przetestuj na odpowiednim przykładzie.

Zad.N2)
Dany jest ciąg N dowolnych liczb. Należy wyznaczać iloczyn niezerowych liczb a przy każdym napotkaniu zera wydrukować dotychczasowy iloczyn i zacząć wyznaczać kolejny nowy iloczyn aż do napotkania kolejnego zera i tak aż do końca ciągu. Przetestuj na odpowiednim przykładzie.

Zad.N3)
Dany jest ciąg N dowolnych liczb całkowitych dodatnich. Należy policzyć ile w tym ciągu jest liczb parzystych a ile nieparzystych. Do badania parzystosci wykorzystaj funkcję mod(x,y), która wyznacza resztę z dzielenia x przez y.

Zad.N4)
Narysuj schemat blokowy algorytmu, który:
wczytuje dane: N oraz A, sprawdza czy N jest mniejsze od A i jeśli tak to oblicza w pętli silnię liczby N a jeśli nie to wyświetla odpowiedni komunikat.
Sprawdź dla N=5, A=6 oraz N=5, A=4.

Zad.N5)
Narysuj schemat blokowy algorytmu, który:
dla danych: N oraz A, generuje w pojedynczej pętli N liczb naturalnych K= 1, 2, 3, ... , przy czym jeśli K mniejsze od A to wyświetla X=K, a jeśli nie to wyświetla X=100-K. Sprawdź dla N=8, A=5.

Zad.N6)
Narysuj schemat blokowy algorytmu, który:
jeśli masz daną SUMĘ pieniędzy pozwala odejmować od niej kolejny WYDATEK pod warunkiem że nie przekracza on aktualnej wartości tej SUMY, która jeszcze ci pozostała, a w przeciwnym przypadku wyświetli odpowiedni komunikat.

Zad.N7)
Wyznaczanie długości (czyli pierwiastka z sumy kwadratów) wektora N wymiarowego - tzn. posiadajacego N składowych: Dx1, Dx2, Dx3, Dx4, ...(każda składowa jest długością rzutu wektora na odpowiednią oś). Sprawdź dla wektora dwu i trójwymiarowego.

Zad.N8)
Obliczanie wypadkowej N wektorów dwuwymiarowych.

Zad.N9)
Obliczanie wypadkowej dwu wektorów N wymiarowych.

Zad.N10)
Sprawdzanie czy cztery wczytane liczby tworzą postęp arytmetyczny. Uogólnij na N liczb.

Zad.N11)
Sprawdzanie czy cztery wczytane liczby tworzą postęp geometryczny. Uogólnij na N liczb.

Zad.N12)
Modelowanie przesiewania kulek: Dany jest bok oczka siatki sita oraz N kulek o różnych średnicach. Wyznaczyć ile kulek przeleci przez sito a ile zostanie na nim.


Obszerne materiały z INFORMATYKI są na serwerze Uniwersytetu Warszawskiego:
wazniak.mimuw.edu.pl

W szczególności także: Wstęp do programowania oraz ćwiczenia dotyczące algorytmów