Buch Cover Buch Cover Buch Cover Buch Cover

Web-Code: - Webcode Help

Zahlensumme (1) (Schleifen)

Schreiben Sie ein Programm, das alle Zahlen von 1 bis 2011 zusammenzählt.

Zusatzaufgaben:

  • Ändern Sie das Programm so ab, dass auch andere Endwerte möglich sind.
  • Ändern Sie das Programm auch noch so ab, dass andere Startwerte möglich sind.
  • Finden Sie eine mathematische Formel, so dass Ihr Programm ganz ohne Schleife auskommt.

0 Kommentare

Bitte melde dich an um einen Kommentar abzugeben

12 Lösung(en)

start = int(raw_input("Start: "))
end = int(raw_input("End: "))
sum =0
for i in range(start,end+1):
    sum=sum+i
print 'Summe: '+str(sum)
                
obere_Grenze = int(input('Gib eine Zahl ein: '))

summe = 0
for i in range(obere_Grenze+1):
    summe += i

print(summe)

                

Lösung von: Beat Trachsler (KZO Wetzikon)

/**
 * Programmieraufgaben.CH
 *
 * date  : 2011-11-03
 * author: philipp gressly freimann (Santis Training AG)
 * PL/1: www.iron-spring.com
 */

Zahlensumme1:
  procedure options(main);
  
  declare
    minimum      fixed(31)    init(1),        /* Untere Zahl    */
    maximum      fixed(31)    init(2011),     /* Oberste Zahl   */
    summe        fixed(31)    init(0),        /* aktuelle Summe */
    aktuell      fixed(31)    init(minimum);  /* aktuelle Zahl  */

  do while(aktuell <= maximum);
    summe = summe + aktuell;
    aktuell = aktuell + 1;
  end;
  put skip list('Die Summe aller Zahler von ', minimum, ' bis ', maximum, ' beträgt ', summe);

end Zahlensumme1;
                

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

package ch.programmieraufgaben.iteration;

/**
 * Aufgabe 4.10 "Programmieren lernen"
 * @author Philipp Gressly (phi AT gressly DOT ch)
 */
public class Zahlsumme1 {
  public static void main(String[] args) {
    new Zahlsumme1().top();
  }
  
  void top() {
    int summe =    0;
    int min   =    1;
    int max   = 2011;
    
    // Hier ohne Schleife!
    summe = (max - min + 1) * (max + min) / 2;
    
    System.out.println("Summe von " + min + " bis " + max + " = " + summe);
    
  }
} // end of class Zahlsumme1
                

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

program Zahlensumme (input, output);

	const
	MAX = 100;
	
	var
	summe : real;
	
begin
	summe := (Max*(Max + 1))/2;
	writeln('Die Summe ist: ', summe:2:2);
end.
                

Lösung von: Katja Rummler ()

program Zahlensumme (input, output);
{ Berechnet eine Zahlensumme von ... bis ...}

	const
	MAX = 100;
	
	var
	i,
	summe : integer;

begin
	summe:= 0;
	for i:= 1 to MAX do
		summe := summe + i;
	writeln('Die Summe ist: ', summe);
end.

                

Lösung von: Katja Rummler ()

 static void Main(string[] args)
        {
            Console.WriteLine("Bitte geben Sie den Anfangswert ein");
            int anfangswert = Convert.ToInt32(Console.ReadLine());

            Console.Clear();

            Console.WriteLine("Bitte geben Sie den Endswert ein");
            int endwert = Convert.ToInt32(Console.ReadLine());

            Console.Clear();

            Console.WriteLine("Die Summe aller Zahlen von {0} bis {1} ergibt: {2}. ",anfangswert,endwert,Zahlensumme(anfangswert, endwert));
            Console.ReadLine();
        }

        static int Zahlensumme(int Anfangswert,int Endwert)
        {
          

            int ausgabe = 0;
            if (Endwert > Anfangswert)
            {

              ausgabe = (Anfangswert+Endwert)*(Endwert-Anfangswert+1)/2;

            
            
            }

            return ausgabe;
        
        }
                

Lösung von: Michael Senzenberger (Lehrausbildung zum IT-Informatiker)

(ns zahlensumme.core
  (:gen-class))

(defn sum
  ([] (reduce + (range (+ 2011 1))))
  ([e] (reduce + (range (+ e 1))))
  ([s e] (reduce + (range s (+ e 1)))))


(defn -main
  [& args]
  (println (apply sum (map read-string args))))
                

Lösung von: André Trobisch ()

function loopSum(to, from) {
  from = from || 1;
  let sum  = 0;
  for (let i = from; i <= to; i++) sum += i;
  return sum;
}

// gaußsche summenformel (dreieckszahlen)
function formulaSum(to, from) {
  if (from) return (to + from) * (to - from + 1) / 2;
  return ((to**2 + to) / 2);
}

// ausgabe
console.log(loopSum(2011));
console.log(formulaSum(2011));

console.log(loopSum(2011, 1102));
console.log(formulaSum(2011, 1102));
                

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

// NET 6.x | C# 10.x | VS-2022

int SumLoop(int begin = 1, int end = 2011) => Enumerable.Range(begin, end - begin + 1).Sum();
int SumGauss(int begin = 1, int end = 2011) => (begin + end) * (end - begin + 1) / 2;

Console.WriteLine(SumLoop());
Console.WriteLine(SumGauss());
Console.WriteLine(SumLoop(10));
Console.WriteLine(SumGauss(10));
Console.WriteLine(SumLoop(1, 3000));
Console.WriteLine(SumGauss(1, 3000));
                

Lösung von: Jens Kelm (@JKooP)

// C++ 17 | VS-2022
#include <iostream> // cout
#include <vector>
#include <numeric>  // iota, accumulate

auto sum_loop_1(size_t first, size_t last) {
    size_t sum{ 0 };
    for (size_t i{ first }; i <= last; ++i) sum += i;
    return sum;
}

auto sum_loop_2(size_t first, size_t last) {
    std::vector<size_t>v(last - first + 1);
    std::iota(v.begin(), v.end(), first);
    return std::accumulate(v.begin(), v.end(), 0);
}

auto sum_loop_3(size_t first, size_t last) {
    std::vector<size_t>v{};
    for (size_t i{ first }; i <= last; ++i) v.push_back(i);
    return std::accumulate(v.begin(), v.end(), 0);
}

size_t sum_loop_4(size_t last) { // rekursiv
    return (last > 0) ? last + sum_loop_4(last - 1) : 0;
}

auto sum_gauss(size_t first, size_t last) {
    return (first + last) * (last - first + 1) / 2;
}

int main() {
    std::cout << sum_loop_1(1, 2011) << "\n";
    std::cout << sum_loop_2(1, 2011) << "\n";
    std::cout << sum_loop_3(1, 2011) << "\n";
    std::cout << sum_loop_4(2011) << "\n";
    std::cout << sum_gauss(1, 2011) << "\n";
}
                

Lösung von: Jens Kelm (@JKooP)

print(sum([i for i in range(1,2012)]))


                

Lösung von: rob ert (tub)

Verifikation/Checksumme:

Die Summe der ersten 2011 Zahlen ist 2 023 066.

Aktionen

Bewertung

Durchschnittliche Bewertung:

Eigene Bewertung:
Bitte zuerst anmelden

Meta

Zeit: 1
Schwierigkeit: k.A.
Webcode: 3uy9-4fbo
Autor: Philipp G. Freimann (BBW (Berufsbildungsschule Winterthur) https://www.bbw.ch)

Download PDF

Download ZIP

Zu Aufgabenblatt hinzufügen