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
31 Lösung(en)
- generic
- ruby
- cpp
- python
- python
- python
- perl
- ruby
- pascal
- c
- generic
- php
- generic
- java
- java
- c
- ruby
- text
- perl
- javascript
- csharp
- php
- c
- python
- csharp
- csharp
- javascript
- text
- vb
- cpp
- c
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)
#include <stdio.h>
void swap(int* lhs, int* rhs) {
int tmp = *lhs;
*lhs = *rhs;
*rhs = tmp;
}
int main() {
int a = 5;
int b = 10;
printf("a: %i\tb: %i\n", a, b);
swap(&a, &b);
printf("a: %i\tb: %i\n", a, b);
}
Lösung von: Jens Kelm (@JKooP)
Aktionen
Neue Lösung hinzufügen
Bewertung
Durchschnittliche Bewertung:
Meta
Zeit: | 0.25 |
Schwierigkeit: | Mittel |
Webcode: | ecu8-pdg7 |
Autor: | Philipp G. Freimann (BBW (Berufsbildungsschule Winterthur) https://www.bbw.ch) |