Buch Cover Buch Cover Buch Cover Buch Cover

Web-Code: - Webcode Help

Satz von Pick (Anweisungen und Abfolgen)

Berechnen Sie mittels Programm die Fläche eines (geschlossenen) Polygonzuges auf Häuschenpapier. Dabei dürfen die Begrenzungsstrecken nur von Häuschenpunkten zu Häuschenpunkten gehen. Jede Strecke trifft so mindestens zwei Randpunkte der Figur. Natürlich kann eine Begrenzungsstrecke auch mehrere Randpunkte berühren. Nach dem Satz von Georg Alexander Pick (1859 - 1942) ist die Fläche A wie folgt zu berechnen:

A = i + r/2 -1

Dabei ist r die Anzahl der oben beschriebenen Randpunkte und i ist die Anzahl der inneren Punkte, also jene Häuschenpunkte, die komplett in der Figur liegen. Im folgenden Beispiel ist i = 37 und r = 42; damit ist die Fläche A = 37 + 42/2 - 1 also gleich 57 Häuschen.

Formel von Pick

Bemerkung: Natürlich ist eine solche Aufgabe einfacher in einer Tabellenkalkulation (z. B. Excel oder OpenOffice) lösbar. Doch hier geht es darum die ersten Schritte mit einer Programmiersprache zu nehmen. Ich sage einem Kunstmalerlehrling ja auch nicht, er müsse dies oder jenes nicht abzeichnen, es gäbe ja nun Fotoapparate ;-)

0 Kommentare

Bitte melde dich an um einen Kommentar abzugeben

8 Lösung(en)

#Satz von Pick
def pick(i,r):
    pick_result = i+r/2-1
    print("Fläche des Polygonzuges =", pick_result, "Häuschen")
pick(37,42)
                

Lösung von: Py Thon ()

package ch.programmieraufgaben.sequenz;

// See https://github.com/pheek/javaInput/blob/master/Input.java
import static eu.gressly.io.utility.Input.*;

/**
 * Satz von Pick: Programmieraufgaben.ch Web-Code 	hpaj-dw3x
 * @version 0.1 (Feb 18, 2015)
 * @author Philipp Gressly Freimann 
 *         (philipp.gressly@santis.ch)
 */
public class Pick {

	public static void main(String[] args) {
		new Pick().top();
	}

	void top() {	
		setAddQuestion("Bitte Anzahl %s eingeben: ");
		int    innerePunkte  = inputInt("innere Punkte");
		int    punkteAufRand = inputInt("Randpunkte"   );

		double flaecheA      = innerePunkte + punkteAufRand / 2.0 - 1;

		System.out.println("Die Fläche (in Häuschen) beträgt " + flaecheA);
	}

} // end of class Pick
                

Lösung von: Philipp G. Freimann (BBW (Berufsbildungsschule Winterthur) https://www.bbw.ch)

function picksTheorem(outer, inner) {
   return inner + outer / 2 - 1;
}

console.log(picksTheorem(42, 37));
                

Lösung von: Lisa Salander (Heidi-Klum-Gymnasium Bottrop)

object SatzPickCalc extends App {
println("Satz von Prick 2015 Scala")
println("Gib die Menge der Randpunke an")
var r = scala.io.StdIn.readInt()
println("Gib die Menge der inneren Punkte an")
var i = scala.io.StdIn.readInt()
var sum = (i + r/2) - 1
println("Die Fläche beträgt " + sum + " Kästchen")
}
                

Lösung von: Name nicht veröffentlicht

class Pick
    {
        static void Main(string[] args)
        {
            Calc(37, 42);
        }
        public static void Calc(int i, int r)
            {
                double pick_result;
                pick_result = i+r/2-1;
                Console.WriteLine("Fläche des Polygons = {0} Häuschen", pick_result);
                Console.ReadLine();
            }        
    }
                

Lösung von: Py Thon ()

public class Programmieraufgaben_ch{
	public static void main (String [] Args) {
		SatzvonPick();
	}
	
	public static void SatzvonPick () {
		int randpunkte= Integer.parseInt(JOptionPane.showInputDialog("Hallo, bitte gebe die Anzahl der Randpunkte ein: "));
		int innerepunkte= Integer.parseInt(JOptionPane.showInputDialog("Bitte gebe nun die Anzahl der Innerenpunkte ein: "));
		System.out.println(innerepunkte+randpunkte/2-1);
	}
}
                

Lösung von: Thomas Anderson (Freie Universität Berlin)

Module Module1
    Sub Main()
        Console.WriteLine("Bitte Anzahl der Randpunkte eingeben: ")
        Dim rand As Integer = Console.ReadLine()
        Console.WriteLine("Bitte Anzahl der Innenpunkte eingeben: ")
        Dim innen As Integer = Console.ReadLine()
        Console.WriteLine("Ergebnis: " & innen + rand / 2 - 1)
        Console.ReadLine()
    End Sub
End Module
                

Lösung von: Elias Zech (Optics Balzers)

#include <stdio.h>

int main() {
	int randpunkte, innerepunkte;
	double ergebnis;

	printf("Geben Sie die Anzahl der inneren Punkte ein: ");
	scanf("%d", &innerepunkte);
	printf("Geben Sie die Anzahl der Randpunkte ein: ");
	scanf("%d", &randpunkte);

	ergebnis = innerepunkte + randpunkte / 2.0 - 1;
	printf("Ergebnis: %.2f\n", ergebnis);

	return 0;
}
                

Lösung von: Max Maro (Baumschule )

Verifikation/Checksumme:

Verifikation in der Aufgabenstellung.

Aktionen

Bewertung

Durchschnittliche Bewertung:

Eigene Bewertung:
Bitte zuerst anmelden

Meta

Zeit: 0.25
Schwierigkeit: Leicht
Webcode: hpaj-dw3x
Autor: Philipp G. Freimann (BBW (Berufsbildungsschule Winterthur) https://www.bbw.ch)

Download PDF

Download ZIP

Zu Aufgabenblatt hinzufügen