Buch Cover Buch Cover Buch Cover Buch Cover

Web-Code: - Webcode Help

Tausche (Anweisungen und Abfolgen)

Schreiben Sie ein Programm, das zwei Speicherstellen (variable) vertauscht.

Gegeben sind am Anfang zwei Variable des selben Datentyps (z. B. integer). Die Werte müssen nach Ihrem Code vertauscht sein.

a := 37
b := 55

... ???

a = 55
b = 37

0 Kommentare

Bitte melde dich an um einen Kommentar abzugeben

30 Lösung(en)

a := 37
b := 55

temp: integer

temp := a
a    := b
b    := temp


                

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

a = 37
b = 55

b,a = a,b

puts "a=#{a}"
puts "b=#{b}"
                

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

// Autor:				Andy Großhennig
// Solution for task:	Tausche (Anweisungen und Abfolgen)

#include <iostream>

using namespace std;

void changing()
{
	int a = 37, b = 55;

	cout << a << "\t" << b << endl;

	a = a * b;
	b = a / b;
	a = a / b;

	cout << a << "\t" << b;
}

int main()
{
	changing();

	cout << "\n\n";
	system("Pause");
	return 0;
}
                

Lösung von: Andy Großhennig (Bundeswehr)

def tausche(a, b):
    
    print ("a ist zu Beginn ", a)
    print ("b ist zu Beginn ", b)
    c = a
    d = b
    a = d
    b = c
    print("a ist jetzt ", a)
    print ("b ist jetzt", b)
tausche(33,55)
                

Lösung von: Py Thon ()

def tausche(a,b):
    print ("a ist " , a, ", ", "b ist ",  b)
    a,b = b,a
    print ("a ist jetzt ", a, ", ", "b ist jetzt ", b)
tausche(33,44)
                

Lösung von: Py Thon ()

a,b = 33,57
a,b = b,a
                

Lösung von: Py Thon ()

$a=37;
$b=55;
@c=($b, $a);
($a, $b)=@c;
                

Lösung von: Name nicht veröffentlicht

#!/usr/bin/env ruby

def vertausche(a,b)
puts "a=" + a.to_s
puts "b=" + b.to_s

c = a
d = b
b = c
a = d

puts "a=" + a.to_s
puts "b=" + b.to_s
end

puts vertausche(5,6)

gets
                

Lösung von: Name nicht veröffentlicht

program tausche (input, output);
{ tauscht 2 eingegebene Zahlen }

    var
    a,
    b,
    hilf: integer;

begin
    write('Bitte erste Zahl eingeben: ');
    readln(a);
    write('Bitte zweite Zahl eingeben: ');
    readln(b);
    writeln('Vor Tausch: a=', a, '; b=', b);
    hilf := a;
    a := b;
    b := hilf;
    writeln('Nach Tausch: a=', a, '; b=', b);
end. { tausche  }

                

Lösung von: Patrick Reif ()

#include <stdio.h>
#include <stdlib.h>
#define NEWLINE '\n'
int main()
{
    /* Variabeln */
    int a, b;

    a = 20;
    b = 50;

    printf("a ist gleich: %d\n", a);
    printf("b ist gleich: %d\n\n", b);

    /* Jetzt wird Plaetze getauscht */
    a = a ^ b;
    b = a ^ b;
    a = a ^ b;

    printf("a ist jetzt gleich: %d\n", a);
    printf("b ist jetzt gleich: %d\n", b);
    return 0;
}
                

Lösung von: Name nicht veröffentlicht

! FORTRAN 90
PROGRAM main
  IMPLICIT NONE
  INTEGER a, b
  a = 90
  b = 95

  ! Wechsel der Werte
  a = XOR(a, b)
  b = XOR(a, b)
  a = XOR(a, b)

  PRINT *, a
  PRINT *, b
END PROGRAM main
                

Lösung von: Name nicht veröffentlicht

<?php 
#Setzte Variablen
$a = 20;
$b = 50;

#Vorab ergebnis
echo "A war: ".$a."</br>";
echo "B war: ".$b."</br>";

#Tausche
$temp = $b;
$b = $a;
$a = $temp;

#Ergebnis
echo "A ist jetzt: ".$a."</br>";
echo "B ist jetzt: ".$b."</br>";
echo "TEMP ist jetzt: ".$temp;
?>
                

Lösung von: Name nicht veröffentlicht

// Programmiersrpache: Go

package main

import "fmt"

func main() {
    a, b := 37, 55

    fmt.Println("a =", a, "| b =", b)
    
    a, b = b, a

    fmt.Println("a =", a, "| b =", b)
}
                

Lösung von: Matthias Sayler (Bosch)

public class wertwechsel {

    // Variablen
    private int a = 37;
    private int b = 55;

    // Vertauschmethode
    private void vertausche(int a) {
	this.a = this.b;
	this.b = a;
    }

    // Hauptmethode
    public static void main(String[] args) {
	wertwechsel tue = new wertwechsel();
	tue.vertausche(tue.a);
    }
}
                

Lösung von: Sebastian Littel ()

package ch.programmieraufgaben.sequenz;
/**
 * Aufgabe "Tausche". Aus programmieraufgaben.ch Web-Code ecu8-pdg7
 * Philipp Gressly Freimann (phi@gress.ly)
 * Nach einer anonymen Fortran-Lösung.
 * 
 * Tausche die Inhalte von zwei Variablen.
 * 
 * Diese Lösung zeigt schön, dass mit weniger Speicher mehr
 * Rechenleistung erforderlich ist.
 * Hier werden drei Operationen (und drei Zuweisungen) benötigt,
 * um die Plätze zu tauschen.
 * Haben wir mehr Speicher zur Verfügung, so können wir
 * den folgenden klassiker verwenden:
 * temp := a; a := b; b := temp;
 * 
 * Wenn sich die Speicherpreise halbieren, so werden unsere
 * PCs mit den geeigneten Algorithmen auch ohne schnellere
 * Prozessoren doppelt so schnell!
 */
import java.util.Scanner;

public class Tausche {
  public static void main(String[] args) {
    new Tausche();
  }
  
  public Tausche() {
    int a = einlesen("A");
    int b = einlesen("B");
    
    // tausche
    a = a ^ b;
    b = a ^ b;
    a = a ^ b;
    
    System.out.println("A neu (= B alt): " + a);
    System.out.println("B neu (= A alt): " + b);
  }
  
  Scanner sc = new Scanner(System.in);
  int einlesen(String attributName) {
      System.out.println("Bitte " + attributName + " eingeben: ");
      return sc.nextInt();
  }

} // end of class Tausche
                

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

#include "stdafx.h"
#include <stdio.h>
#include <stdlib.h>


int main()
{
	// Variablen definieren
	int iZahl1;
	int iZahl2;
	int iTausch;

	// Den Benutzer auffordern Zahlen einzugeben
	printf("Geben sie eine Zahl ein: ");
	scanf("%i", &iZahl1);
	fflush(stdin);
	printf("Geben sie eine zweite Zahl ein: ");
	scanf("%i", &iZahl2);
	fflush(stdin);

	// Tuaschen
	iTausch = iZahl1;
	iZahl1 = iZahl2;
	iZahl2 = iTausch;

	// Ausgabe der getauschten Zahlen
	printf("\n%i, %i", iZahl1, iZahl2);
	getchar();
	return 0;
}
                

Lösung von: Elias Zech (Optics Balzers)

a = 37
b = 55
puts "a: #{a}"
puts "b: #{b}"
a, b = b, a
puts "a: #{a}"
puts "b: #{b}"
                

Lösung von: Name nicht veröffentlicht

/**** REXX ************************************************************/
/*    EXEC zum vertauschen zweier Variabelwerten                      */
/**********************************************************************/

a = 37
b = 55

temp = a
a = b
b = temp
                

Lösung von: Name nicht veröffentlicht

my $a=37;
my $b=55;
print "a:$a b:$b \n";
($a,$b) = ($b,$a);
print "a:$a b:$b \n";
                

Lösung von: Paul Scheinast (http://scheinast.eu)

   /* klassisch und robust: der ringtausch*/ 
   // funktioniert wunderbar mit allen datentypen
   function switchVars(a, b) {
      var temp = a;
      a = b;
      b = temp;
      return [a, b];
   }

   console.log(switchVars(1111, 2222));
   console.log(switchVars(11.1, 22.2));
   console.log(switchVars("AB", "CD"));
   console.log(switchVars([12], [34]).join(", "));
   console.log(switchVars(true, false));



































































/* ===================================================  FERNER LIEFEN  =========
Nach ein bisschen internet-recherche fand ich dann noch ein paar versuche, 
ohne hilfsvariable auszukommen. Sehr abgefahrene ideen dabei, aber leider 
nicht für alle variablentypen geeignet. Hier die tests:

......................................................  nur integer/bool bedingt
function switchVars(a, b) {
   b = b + a - (a = b);
   return [a, b];
}
                                                returns:
console.log(switchVars(1111, 2222));             // 2222, 1111
console.log(switchVars(11.1, 22.2));             // 22.2, 11.099999999999998
console.log(switchVars("AB", "CD"));             // "CD", NaN 
console.log(switchVars([12], ["AB"]).join(", "));// "34, 3378"
console.log(switchVars(true, false));            // false, 1 


....................................  nur integer/integer-arrays/boolean bedingt
function switchVars(a, b) {
   a += b;
   b = a - b;
   a -= b;
   return [a, b];
}
                                                returns:
console.log(switchVars(1111, 2222));             // 2222, 1111
console.log(switchVars(11.1, 22.2));             // 22.2, 11.099999999999998
console.log(switchVars("AB", "CD"));             // NaN, NaN 
console.log(switchVars([12], ["AB"]).join(", "));  // "34, 1200"
console.log(switchVars(true, false));            // 0, 1 


....................................  nur integer/integer-arrays/boolean bedingt
function switchVars(a, b) {
   a ^= b;
   b ^= a;
   a ^= b;
   return [a, b];
}
                                                returns:
console.log(switchVars(1111, 2222));             // 2222, 1111
console.log(switchVars(11.1, 22.2));             // 22, 11
console.log(switchVars("AB", "CD"));             // 0, 0 
console.log(switchVars([12], ["AB"]).join(", "));  // "34, 12"
console.log(switchVars(true, false));            // 0, 1 


.....................................  nur integer/integer-array/boolean bedingt
function switchVars(a, b) {
   a += b;
   b = substr(a, 0, a.length - b.length);
   a = substr(a, b.lenght);
}
                                                returns:
console.log(switchVars(1111, 2222));             // 2222, 1111
console.log(switchVars(11.1, 22.2));             // 22, 11
console.log(switchVars("AB", "CD"));             // 0, 0 
console.log(switchVars([12], ["AB"]).join(", "));  // "34, 12"
console.log(switchVars(true, false));            // 0, 1


........................................  nur integer/integer-array/bool bedingt
function switchVars(a, b) {
   a ^= b ^= a ^= b;
}
                                                returns:
console.log(switchVars(1111, 2222));             // 2222, 1111
console.log(switchVars(11.1, 22.2));             // 22, 11
console.log(switchVars("AB", "CD"));             // 0, 0 
console.log(switchVars([12], [34]).join(", "));  // "34, 12"
console.log(switchVars(true, false));            // 0, 1

==============================================================================*/   
 
                

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

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace tausche
{
    class Program
    {
        static void Main(string[] args)
        {
            int a = 37;
            int b = 10;
            Console.WriteLine("a ist {0} und b ist {1}", a, b);

            int temp = a;
            a = b;
            b = temp;
            Console.WriteLine("Nach dem Tauschen");
            Console.WriteLine("a ist jetzt {0} und b ist jetzt {1}", a, b);

            Console.ReadKey();
        }
    }
}

                

Lösung von: mattia mancina (Berufsfachschule für Informatik Bozen)

//Vor dem Tausch
$a = 37;
$b = 55;

echo "Vor dem Tausch ist a = " . $a . " und b= " . $b;
echo "<br><br>";

//tauschen :D
$temp = $a;
$a = $b;
$b = $temp;

//Nach dem Tausch
echo "Nach dem Tausch ist a = " . $a . " und b= " . $b;

                

Lösung von: Maik Scheiermann (Powercloud GmbH)

#include<stdio.h>
int main(void)
{
    int a = 33,b = 99,leer = 0;
    printf("a= %d b=%d\n", a,b);
    leer = a;
    a = b;
    b = leer;
    printf("a= %d b=%d\n", a,b);
}
                

Lösung von: Carlo con_carne ()

def tausche():
    a = 55
    b = 37
    c = 0

    c = a
    a = b
    b = c
    

    print("a:", a)
    print("b:", b)

tausche()
                

Lösung von: Hermann Lallah (THM)

using System;
using System.Threading;

// Programmieraufgaben.ch Aufgabencode: ecu8-pdg7

namespace MostComplexSwapping
{
    class Program
    {
        static void Main()
        {
            // Eingabe der Zahlen
            ulong[] numbers = new ulong[3];
            Console.Write("Willkommen beim Ultimativen Zahlentauscher.\nGeben Sie die erste Ganzzahl ein: ");
            if(!ulong.TryParse(Console.ReadLine(), out numbers[1]))
            {
                Environment.Exit(0x32);
            }
            Console.Clear();
            Console.Write("Geben Sie die Zweite Ganzzahl ein: ");
            if (!ulong.TryParse(Console.ReadLine(), out numbers[2]))
            {
                Environment.Exit(0x32);
            }

            // Ausgabe
            Console.Clear();
            Console.Write($"Variable A ist {numbers[1]}, Variable B ist {numbers[2]}.\n Tausche Variablen");

            // So tun, als ob starke verarbeitungen stattfinden.
            Thread.Sleep(2500);
            Console.Write(".");
            Thread.Sleep(2500);
            Console.Write(".");
            Thread.Sleep(2500);
            Console.Write(".");
            Thread.Sleep(4000);
            Console.WriteLine("");


            // Tatsächliche verarbeitung
            numbers[0] = numbers[1];
            numbers[1] = numbers[2];
            numbers[2] = numbers[0];

            // Ausgabe
            Console.WriteLine($"Variable A ist {numbers[1]}, Variable B ist {numbers[2]}.\nDrücken Sie eine beliebige Taste, um das Programm zu beenden.");
            Console.ReadKey();
        }
    }
}

                

Lösung von: Howard Dennis King (IT-Schule Stuttgart)

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

var (a, b) = Swap(37, 55);
Console.WriteLine($"a:{a}, b:{b}");
static (int a, int b) Swap(int a, int b) => (b, a);

// oder kürzer:

int a = 37, b = 55;
(a, b) = (b, a);
Console.WriteLine($"a:{a}, b:{b}");
                

Lösung von: Jens Kelm (@JKooP)

let a = 37, b = 55;

[a, b] = [b, a];

console.log(a, b);
                

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

Swap Sauce.

A very simple Chef-recipe to swap the values of ingredients.

Ingredients.
100 g aioli
100 g bacon

Method.
Take aioli from the refrigerator. Take bacon from the refrigerator. Put aioli 
into the mixing bowl. Put bacon into the mixing bowl. Stir for 1 minute. Fold 
aioli into the mixing bowl. Fold bacon into the mixing bowl. Put bacon into 
the mixing bowl. Put aioli into the mixing bowl. Pour contents of the mixing 
bowl into the baking dish.

Serves 1.
                

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

' VBA

Sub Swap(a%, b%)
    t% = a: a = b: b = t
End Sub

Sub Main()
    a% = 37: b% = 55
    Swap a, b
    Debug.Print "a = " & a, "b = " & b
End Sub

                

Lösung von: Jens Kelm (@JKooP)

// C++ 20 | VS-2022
#include <iostream>

template<typename _Ty>
const auto print(const _Ty & cont_) {
    for (const auto& e : cont_) std::cout << e << " "; std::cout << "\n";
}

template<typename _Ty>
const auto print(const _Ty & left_, const _Ty & right_) {
    std::cout << "left: " << left_ << " right: " << right_ << "\n";
}

int main() {
    // Variante 1 - mit Bordmitteln:
    auto a1{ 5 };
    auto b1{ 7 };
    print(a1, b1);
    std::swap(a1, b1);
    print(a1, b1);

    // Variante 2 - eigene Swap-Funktion (Referenz)
    constexpr auto my_swap_1{ [] <typename _Ty>(_Ty & left_, _Ty & right_) { const _Ty tmp{ left_ }; left_ = right_; right_ = tmp; } };
    auto a2{ 15 };
    auto b2{ 17 };
    print(a2, b2);
    my_swap_1(a2, b2);
    print(a2, b2);

    // Variante 3 - eigene Swap-Funktion (Rückgabewert)
    constexpr auto my_swap_2{ [] <typename _Ty>(const _Ty & left_, const _Ty & right_) { return std::make_tuple(right_, left_); } };
    const auto a3 = { 1,2,3,4,5 };
    const auto b3 = { 6,7,8,9,0 };
    print(a3);
    print(b3);
    const auto& [a3_, b3_] = my_swap_2(a3, b3);
    print(a3_);
    print(b3_);
}
                

Lösung von: Jens Kelm (@JKooP)

Aktionen

Bewertung

Durchschnittliche Bewertung:

Eigene Bewertung:
Bitte zuerst anmelden

Meta

Zeit: 0.25
Schwierigkeit: Mittel
Webcode: ecu8-pdg7
Autor: Philipp G. Freimann (BBW (Berufsbildungsschule Winterthur) https://www.bbw.ch)

Download PDF

Download ZIP

Zu Aufgabenblatt hinzufügen