Differenz (Selektionen)
Ihr Programm nimmt zwei Zahlen entgegen und gibt deren Differenz (größere minus kleinere Zahl) aus.
Zusatzaufgabe: Das Programm nimmt drei Zahlen entgegen und gibt die kleinste und die größte vorkommende Differenz aus.
0 Kommentare
14 Lösung(en)
#!/usr/bin/ruby
# -*- coding: utf-8 -*-
# @autor Philipp Gressly Freimann
# 2012 Juli
# Differenz
def einlesen(wert)
print "Bitte #{wert} eingeben:"
# Dezimalzahl (real) einlesen:
return STDIN.gets.to_f
end
# Differenz
def differenz(z1, z2)
diff = z2 - z1
if(diff < 0) then
diff = -diff;
end
return diff
end
# minimale Differenz
def minimaleDifferenz(z1, z2, z3)
d12 = differenz(z1, z2)
d13 = differenz(z1, z3)
d23 = differenz(z2, z3)
d = d12
if(d13 < d) then
d = d13
end
if(d23 < d) then
d = d23
end
return d
end
# maximale Differenz
def maximaleDifferenz(z1, z2, z3)
d12 = differenz(z1, z2)
d13 = differenz(z1, z3)
d23 = differenz(z2, z3)
d = d12
if(d13 > d) then
d = d13
end
if(d23 > d) then
d = d23
end
return d
end
#Start
anzahlEingaben = einlesen("Anzahl Eingabezahlen")
z1 = einlesen("erste Zahl")
z2 = einlesen("zweite Zahl")
if(2 < anzahlEingaben) then
puts "Zusatzaufgabe"
z3 = einlesen("dritteZahl")
minDiff = minimaleDifferenz(z1, z2, z3)
puts "Minimale Differenz ist gleich #{minDiff}."
maxDiff = maximaleDifferenz(z1, z2, z3)
puts "Maximale Differenz ist gleich #{maxDiff}."
else
diff = differenz(z1, z2);
puts "Die Differenz beträgt #{diff}"
end
Lösung von: Philipp G. Freimann (BBW (Berufsbildungsschule Winterthur) https://www.bbw.ch)
#Nicht schön - aber funzt
a = int(input("Erste Zahl: "))
b = int(input("Zweite Zahl: "))
if a>b:
erg = a-b
else:
erg = b-a
print("Differenz ist: ", erg)
print ("Zusatzaufgabe Differenzenvergleich")
print ("---------------------------------------------------")
a = int(input("Erste Zahl: "))
b = int(input("Zweite Zahl: "))
c = int(input ("Dritte Zahl: "))
liste = [a,b,c]
liste.sort()
liste_neu = []
e1 = liste[0]-liste[1]
liste_neu.append(e1)
e2 = liste[0]-liste[2]
liste_neu.append(e2)
e3 = liste[1]-liste[2]
liste_neu.append(e3)
liste_neu.sort()
print("Größte Differenz ist:", abs(liste_neu[0]), "Kleinste Differenz ist:", abs(liste_neu[2]))
Lösung von: Py Thon ()
// javascript on http://www.khanacademy.org/cs/new:
var a = 4;
var b = 2;
var diff;
diff = b - a;
if(diff < 0) {
diff = -diff;
}
fill(0,0,0);
text(diff, 30, 30);
Lösung von: Philipp G. Freimann (BBW (Berufsbildungsschule Winterthur) https://www.bbw.ch)
#einfache Differenz:
def difference(a,b):
return abs(a - b)
print "Differenz ist " + str(difference(input("erste Zahl"), input("zweite Zahl")))
#Differenz zwischen 3 Zahlen:
def difference3(a,b,c):
l = [a,b,c]
l.sort()
s = "Maximale Differenz ist " + str(l[2]-l[0]) + ", "
if l[2]-l[1] > l[1]-l[0]:
s = s + "Minimale Differenz ist " + str(l[1]-l[0])
else:
s = s + "Minimale Differenz ist " + str(l[2]-l[1])
return s
print difference3(input("erste Zahl"), input("zweite Zahl"), input("dritte Zahl"))
Lösung von: Meritio Bruno ()
#include <iostream>
using namespace std;
// Funktionsdeklaration
void diffBy2Numb(int zahl1, int zahl2);
void diffBy3Numb(int zahl1, int zahl2, int zahl3);
int main(int argc, const char * argv[])
{
int auswahl, z1, z2, z3;
// Ausgabe des Menüs
cout << "Wollen Sie die Differenz: \n";
cout << "\t 1: Von 2 Zahlen berechnen\n";
cout << "\t 2: Von 3 Zahlen (größte Differenz) berechnen\n";
// Eingabe der Entscheidung
cout << "Ihr Auswahl lautet: ";
cin >> auswahl;
// Eingabe der 2 Zahlen + Funktionsaufruf
if(auswahl == 1) {
cout << "Zahl 1: ";
cin >> z1;
cout << "Zahl 2: ";
cin >> z2;
diffBy2Numb(z1, z2);
}
// Eingabe der 3 Zahlen + Funktionsaufruf
else if(auswahl == 2) {
cout << "Zahl 1: ";
cin >> z1;
cout << "Zahl 2: ";
cin >> z2;
cout << "Zahl 3: ";
cin >> z3;
diffBy3Numb(z1, z2, z3);
}
else {
cout << "Falsche Eingabe! ";
}
return 0;
}
// Differenz von 2 Zahlen berechnen
void diffBy2Numb(int zahl1, int zahl2) {
int diff;
if(zahl1 > zahl2)
diff = zahl1 - zahl2;
else
diff = zahl2 - zahl1;
cout << "Die Differenz der Zahlen beträgt " << diff << '\n';
}
// Größte Differenz der 3 Zahlen berechnen
void diffBy3Numb(int zahl1, int zahl2, int zahl3) {
int gZahl = (zahl1 > zahl2) ? ((zahl1 > zahl3) ? zahl1 : zahl3) : ((zahl2 > zahl3) ? zahl2 : zahl3);
int kZahl = (zahl1 < zahl2) ? ((zahl1 < zahl3) ? zahl1 : zahl3) : ((zahl2 < zahl3) ? zahl2 : zahl3);
int gDiff = gZahl - kZahl;
cout << "Die größte Differenz der 3 Zahlen beträgt: " << gDiff << '\n';
}
Lösung von: Ibrahim Hamade (Robert-Koch-Gymnasium)
// Autor: Andy Großhennig
// Solution for task: Differenz (Selektionen)
import java.util.Arrays;
import java.util.Scanner;
public class Main
{
// Method: Get Numbers and return them in a string
String getNumbers()
{
Main main = new Main();
Scanner input = new Scanner(System.in);
String sNumbers;
System.out.println("Geben sie 2 Zahlen ein um die Differenz zu berechnen oder mehr um die kleinste und groeßte und deren Differenz herauzufinden\n" +
"Zahlen mit Komma trennen (XX,X,XXX)\n");
sNumbers = input.next();
sNumbers.trim();
// If: Check whether the numbers of the input string are seperated with a comma
if(!sNumbers.contains(","))
{
System.out.println("Fehlerhafte eingabe!");
main.checkNumbers();
}
input.close();
return sNumbers;
}
// Method: Receive the string and split it in a string array. Cast the string array in a int array. Show the difference between the biggest and the lowest number
void checkNumbers()
{
Main main = new Main();
String[] s_arrNumbers = getNumbers().split(",");
final int iARRAYLENGTH = s_arrNumbers.length;
int[] i_arrNumbers = new int[iARRAYLENGTH];
// Loop: Cast the string array in a int array
for(int i = 0;i < iARRAYLENGTH;i++)
{
i_arrNumbers[i] = Integer.parseInt(s_arrNumbers[i]);
}
// If: Check for wrong input
if(iARRAYLENGTH <= 1)
{
System.out.println("Fehlerhafte eingabe!");
main.checkNumbers();
}
// If: Run if the input was two numbers
else if (iARRAYLENGTH == 2)
{
// If: Run if the first number was lower as the second
if(i_arrNumbers[0] < i_arrNumbers[1])
System.out.println("Die Differenz zwischen " + i_arrNumbers[0] + " und " +
i_arrNumbers[1] + " betraegt: " + (i_arrNumbers[1] - i_arrNumbers[0]));
else
System.out.println("Die Differenz zwischen " + i_arrNumbers[1] + " und " +
i_arrNumbers[0] + " betraegt: " + (i_arrNumbers[0] - i_arrNumbers[1]));
}
// If: Run if the input was more as two numbers
else if(iARRAYLENGTH > 2)
{
//Sort the array from lowest to highest number
Arrays.sort(i_arrNumbers);
int[] i_arrMinMax = new int[2];
//Save the lowest and the highest number in a second int array
i_arrMinMax[0] = i_arrNumbers[0];
i_arrMinMax[1] = i_arrNumbers[iARRAYLENGTH - 1];
System.out.println("Die Differenz zwischen " + i_arrMinMax[0] + " und " +
i_arrMinMax[1] + " betraegt: " + (i_arrMinMax[1] - i_arrMinMax[0]));
}
// If: Check for wrong input
else
{
System.out.println("Fehlerhafte eingabe!");
main.checkNumbers();
}
}
public static void main(String[] args)
{
Main main = new Main();
main.checkNumbers();
}
}
Lösung von: Andy Großhennig (Bundeswehr)
#aufgabe
print 'Geben sie 2 Zahlen ein: ';
chomp($a=<STDIN>);
chomp($b=<STDIN>);
$c = $a > $b ? $a - $b : $b - $a;
print "\nDie Differenz beträgt $c.\n";
#zusatzaufgabe
$a, $b, $c; #die drei zahlen
@zahlen;
print "Geben sie drei Zahlen ein: ";
chomp($a=<STDIN>);
chomp($b=<STDIN>);
chomp($c=<STDIN>);
@zahlen=($a, $b, $c);
@zahlen= sort @zahlen;
if($zahlen[2]-$zahlen[1] > $zahlen[1] - $zahlen[0]){
print "Die groesste Differenz ist zwischen: $zahlen[2] und $zahlen[1]";
print "\n";
print "Die kleinste Differenz ist zwischen: $zahlen[1] und $zahlen[0]";
}elsif($zahlen[2]-$zahlen[1] == $zahlen[1] - $zahlen[0]){
print "Die Differenzen sind gleich.\n";
}else{
print "Die groesste Differenz ist zwischen: $zahlen[1] und $zahlen[0]";
print "\n";
print "Die kleinste Differenz ist zwischen: $zahlen[2] und $zahlen[1]";
}
Lösung von: Name nicht veröffentlicht
int grössereZahl(int iZahl1, int iZahl2) {
int iGrZahl = 0;
if(iZahl1 > iZahl2) {
iGrZahl = iZahl1;
} else {
iGrZahl = iZahl2;
}
return iGrZahl;
}
int main()
{
int iZahl1, iZahl2, iZahl3;
int iGrZahl = 0;
printf("Geben Sie eine Zahl ein: ");
scanf_s("%i", &iZahl1);
fflush(stdin);
printf("Geben sie noch eine Zahl ein: ");
scanf_s("%i", &iZahl2);
fflush(stdin);
iGrZahl = grössereZahl(iZahl1, iZahl2);
printf("\nDie groessere Zahl ist: %i", iGrZahl);
getchar();
return 0;
}
Lösung von: Elias Zech (Optics Balzers)
function difference(a, b, c) {
if (c == undefined) return Math.abs(a - b);
var arr = [a, b, c].sort();
return [Math.abs(arr[2] - arr[1]), Math.abs(arr[0] - arr[1])];
}
console.log(difference(8, 3));
console.log(difference(3, -2, 18));
Lösung von: Lisa Salander (Heidi-Klum-Gymnasium Bottrop)
# Differenz zweier Zahlen
zahl1 = int(input("Zahl 1: "))
zahl2 = int(input("Zahl 2: "))
if zahl1 > zahl2:
print("Differenz von", zahl1, "und", zahl2, ":", zahl1 - zahl2)
else:
print("Differenz von", zahl1, "und", zahl2, ":", zahl2 - zahl1)
# Groesste und kleinste Differenz dreier Zahlen
zahl1 = int(input("Zahl 1: "))
zahl2 = int(input("Zahl 2: "))
zahl3 = int(input("Zahl 3: "))
liste = [zahl1, zahl2, zahl3]
liste.sort()
print("Groesste Differenz:", liste[2] - liste[0])
print("Kleinste Differenz:", min((liste[1] - liste[0]), (liste[2] - liste[1])))
Lösung von: Peter Pan (Home Office)
// NET Core 3.x
using System;
using System.Linq;
using static System.Math;
namespace CS_MDL_CORE_Differenz
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine(Difference(3));
Console.WriteLine(Difference(3, 8));
Console.WriteLine(Difference(3, -2, 18));
}
static string Difference(params double[] p)
{
Array.Sort(p);
return p.Length switch
{
int c when c < 2 || c > 3 => string.Empty,
int c when c == 2 => Abs(p[1] - p[0]).ToString(),
_ => $"{(Abs(p[1] - p[0]), Abs(p[2] - p[0]))}"
};
}
}
}
Lösung von: Jens Kelm (@JKooP)
// NET Core 3.x
using System;
using System.Linq;
using static System.Math;
namespace CS_MDL_CORE_Differenz
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine(Difference(3, -2, 18, -1, 50));
}
// Für mehr als 3 Werte:
static (double max, double min) Difference(params double[] p)
{
Array.Sort(p);
double min = 0, max = 0;
if (p.Length > 1) max = Abs(p.Max() - p.Min());
if (p.Length > 2) min = Abs(p[1] - p.Min());
return (max, min);
}
}
}
Lösung von: Jens Kelm (@JKooP)
// C++ 20 | VS-2022
#include <iostream>
#include <vector>
#include <tuple>
#include <algorithm>
std::tuple<double, double> difference(std::vector<double> v) {
double min{ 0 }, max{ 0 };
std::sort(v.begin(), v.end());
if (v.size() > 1) {
max = abs(v[v.size() - 1] - v[0]);
min = abs(v[1] - v[0]);
}
return { min, max };
}
int main() {
auto [a, b] { difference({ 3, -2, 18, -1, 50 }) }; // C++ 20
std::cout << a << ", " << b << std::endl;
}
Lösung von: Jens Kelm (@JKooP)
// NET 6.x | C# 10.x | VS-2022
Console.WriteLine(Difference(3, -2, 18, -1, 50));
static (double max, double min) Difference(params double[] p) {
Array.Sort(p);
return p.Length < 2 ? (0, 0) : (Math.Abs(p[^1] - p[0]), Math.Abs(p[1] - p[0]));
}
Lösung von: Jens Kelm (@JKooP)
Verifikation/Checksumme:
Aufgabe
- 8, 3 -> 5
- 5, 100 -> 95
- -4, 19 -> 23
Zusatzaufgaeb
- 6, 7, 10 -> kleinste: 1; größte: 4
- 3, -2, 18 -> kleinste: 5; größte: 20
Aktionen
Neue Lösung hinzufügen
Bewertung
Durchschnittliche Bewertung:
Meta
Zeit: | 0.25 |
Schwierigkeit: | Leicht |
Webcode: | q225-nepr |
Autor: | Philipp G. Freimann (BBW (Berufsbildungsschule Winterthur) https://www.bbw.ch) |