Wyszukiwanie największej spośród czterech liczb

Transkrypt

Wyszukiwanie największej spośród czterech liczb
Wyszukiwanie największej spośród czterech liczb
Użytkownik podaje cztery liczby rzeczywiste. Podaj algorytm znajdowania największej spośród nich. (Np.: po
wprowadzeniu liczb:
12 7 18.5 9 program powinien jako wyniki podać liczbę 18.5).
Specyfikacja algorytmu:
Dane wejściowe:
cztery liczby rzeczywiste – a, b, c, d
Dane wyjściowe:
liczba rzeczywista, największa spośród powyższych liczb
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 cztery liczby: 12 7
Największa z nich to 18.5
18.5
9
d) Zaimplementuj ten algorytm w formie
programu w języku Visual Basic lub
skryptu w języku JavaScript. Oto
przykładowy projekt takiej aplikacji:
Przykładowe rozwiązanie
Poniższe rozwiązanie opiera się użyciu pomocniczej zmiennej (oznaczmy ją przez m), która jest „kandydatem”
do roli największej spośród wprowadzonych liczb. Na początku przypisujemy jej wartość pierwszej
wprowadzonej liczby, a potem porównujemy ją z kolejnymi liczbami. Na koniec zmienna ta zawiera wartość
największą z wszystkich liczb.
Specyfikację algorytmu uzupełniamy o poniższy zapis:
Zmienna
pomocnicza:
liczba rzeczywista m
Opis kolejnych kroków – pkt a)
Krok 1:
Wczytaj liczby a, b, c, d.
Krok 2:
Zmiennej m przypisz wartość a.
Krok 3:
Jeśli b jest większe od m, wtedy zmiennej m przypisz wartość b.
Krok 4:
Jeśli c jest większe od m, wtedy zmiennej m przypisz wartość c.
Krok 5:
Jeśli d jest większe od m, wtedy zmiennej m przypisz wartość d.
Krok 6:
Wypisz wartość m.
Schemat blokowy – pkt b)
Start
Wczytaj
a, b, c, d
m←a
NIE
b>m
?
TAK
NIE
c>m
?
TAK
NIE
d>m
?
TAK
Wypisz m
m←b
m←c
m←d
Stop
Program w języku Pascal – pkt c)
program max4;
{ Znajdowanie największej z czterech liczb }
var
a, b, c, d, m: real;
begin
write('Podaj cztery liczby: ');
readln(a, b, c, d);
m := a;
if b > m then m := b;
if c > m then m := c;
if d > m then m := d;
writeln('Największa z nich to ', m)
end.
Program w języku C++ – pkt c)
// Znajdowanie największej z czterech liczb
#include <iostream>
main()
{
double a, b, c, d, m;
cout << "Podaj cztery liczby: ";
cin >> a;
cin >> b;
cin >> c;
cin >> d;
m = a;
if (b>m) m = b;
if (c>m) m = c;
if (d>m) m = d;
cout << "Największa z nich to " << m << endl;
}
Program w języku Visual Basic – pkt d)
Pola tekstowe, na których użytkownik wpisuje
liczby, są oznaczone jako Text1, Text2,
Text3 oraz Text4. Przycisk uruchamiający
procedurę znajdowania największej liczby jest
oznaczony jako Command1. Pole tekstowe, na
którym wyświetlany jest rezultat wyszukiwania,
jest oznaczone jako Text5.
Oto procedura stowarzyszona z przyciskiem Command1:
Private Sub Command1_Click()
Dim a, b, c, d, m
a = Val(Text1.Text)
b = Val(Text2.Text)
c = Val(Text3.Text)
d = Val(Text4.Text)
m = a
If b > m Then
m = b
End If
If c > m Then
m = c
End If
If d > m Then
m = d
End If
Text5.Text = m
End Sub
Uwaga: Użycie funkcji Val umożliwia zamianę danych tekstowych na liczby, których wartość można
porównać.
Program w języku JavaScript – pkt d)
Prezentujemy kompletny kod HTML strony WWW będącej rozwiązaniem zadania:
<html>
<head>
<script language=javascript>
function oblicz()
{
// odczytanie wprowadzonych danych
var a = eval(document.form1.a.value);
var b = eval(document.form1.b.value);
var c = eval(document.form1.c.value);
var d = eval(document.form1.d.value);
// poszukiwanie największej liczby
var m = a;
if(b > m) m = b;
if(c > m) m = c;
if(d > m) m = d;
// wyświetlenie największej liczby
document.form1.max.value = m;
}
</script>
</head>
<body>
<h3 align=center>Znajdowanie największej liczby</h3>
<center>
<form name=form1>
a: <input type=text size=5 name=a>
b: <input type=text size=5 name=b>
c: <input type=text size=5 name=c>
d: <input type=text size=5 name=d>
<br><br>
<input type=button
value="Znajdź największą liczbę"
onClick=oblicz()>
<br><br>
max: <input type=text size=5 name=max>
</form>
</center>
</body>
</html>
Uwaga: Użycie funkcji eval umożliwia zamianę danych tekstowych na liczby, których wartość można
porównać.