Buch Cover Buch Cover Buch Cover Buch Cover

Web-Code: - Webcode Help

AHV (Selektionen)

Die Beitragspflicht für die AHV (Alters- und Hinterlassenenversicherung) beginnt ab dem 1. Januar nach Vollenden des 17. Altersjahres und endet (bis zur Umsetzung des Artikels 8 der Schweizer Bundesverfassung vom 18. Dez. 1998) unterschiedlich; nämlich im Alter von 64 Jahren bei Frauen bzw. 65 Jahren bei Männern.

Zur Vereinfachung sollen alle 18- bis und mit 64- (bzw. 65-) Jährigen beitragspflichtig sein.

Schreiben Sie ein Programm, bei dem die Anwenderin Alter und Geschlecht eingeben kann. Die Ausgabe des Programms soll entweder "noch nicht AHV-beitragspflichtig", "AHV-beitragspflichtig" oder "bereits AHV-Empfänger" sein.

1 Kommentare

Bitte melde dich an um einen Kommentar abzugeben

Kommentare (1)

Dino_Weber 31. Oktober 2016 13:53   reply report
.

13 Lösung(en)

// Version für die Befehlszeile
// Nach Geschlecht fragen bis entweder w oder m eingegeben wird
do {
  echo "Bitte geben Sie ihr Geschlecht an (m/w):";
  $handle = fopen ("php://stdin","r");
  $geschlecht = trim(fgets($handle));
} while ($geschlecht != 'm' AND $geschlecht != 'w');

// Nach Alter fragen bis eine Zahl eingegeben wird
do {
  echo "Bitte geben Sie ihr Alter an:";
  $handle = fopen ("php://stdin","r");
  $alter = trim(fgets($handle));
} while (!is_numeric($alter));

// Ausgabe
if ($alter < 18 )
{
  echo "noch nicht AHV Beitragspflichtig" . "\n";
}
elseif (($geschlecht == 'm' AND $alter < 66) OR ($geschlecht == 'w' AND $alter < 65))
{
  echo "AHV Beitragspflichtig" . "\n";
}
else
{
  echo "bereits AHV-Empfänger" . "\n";
}

                
def ahv():
    # Nach Geschlecht fragen bis entweder w oder m eingegeben wird
    print "Vorsorgeberechnung"
    geschlecht = ''
    while (geschlecht != 'w' and geschlecht != 'm'):
        geschlecht = raw_input("Bitte geben Sie ihr Geschlecht an (m/w):")

    alter = 0
    while (alter < 10 or alter > 150):
        alter = int(raw_input("Bitte geben Sie ihr Alter an:"))

    if alter < 18:
        print "noch nicht AHV Beitragspflichtig \n"
    elif (geschlecht=='m' and alter < 66) or (geschlecht=='w' and alter < 65):
        print "AHV Beitragspflichtig \n"
    else:
        print "bereits AHV-Empfänger \n"


ahv()
                
// Version für den Webbrowser
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
       "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Programmieraufgaben.ch: AHV</title>
</head>
<body>
<?php
// Ausgabe der Beitragspflicht wenn das Formular abgeschickt wurde
if (isset($_POST['geschlecht']) && isset($_POST['geschlecht']))
{
  $geschlecht = $_POST['geschlecht'];
  $alter = $_POST['alter'];

  // Ausgabe
  if ($alter < 18 )
  {
    echo "noch nicht AHV Beitragspflichtig" . "\n";
  }
  elseif (($geschlecht == 'm' AND $alter < 66) OR ($geschlecht == 'w' AND $alter < 65))
  {
   echo "AHV Beitragspflichtig" . "\n";
  }
  else
  {
    echo "bereits AHV-Empfänger" . "\n";
  }
}
else
{ // Anzeige des Formulars
?>
<form method="post">
  <ul>
    <li>
      <label for="geschlecht">Geschlecht</label>
      <select name="geschlecht" id="geschlecht">
        <option>w</option>
        <option>m</option>
      </select>
    </li>
    <li>
      <label for="alter">Alter</label>
      <select name="alter" id="alter">
        <?php for ($i = 1; $i <= 100; $i++): ?>
        <option><?php echo $i ?></option>
        <?php endfor; ?>
      </select>
    </li>
  </ul>
<input type="submit" value="Senden">
</form>
<?php
}
?>
</body>
</html>
                
var alterOk = false;
while(!alterOk) {
   alter = window.prompt("Geben Sie ihr Alter ein");
   if(isFinite(alter*1)){
      alterOk = true; 
   }
}

var geschlechtOk = false;
while(!geschlechtOk) {
   geschlecht = window.prompt("Geben Sie ihr Geschlecht ein (w oder m)");
   if("m" == geschlecht || "w" == geschlecht){
      geschlechtOk = true; 
   }
}   

if (18 > alter) {
   window.alert("noch nicht AHV-beitragspflichtig");
} else {
   if (64 <= alter   && "w" == geschlecht) {
      window.alert("bereits AHV-Empfänger");
   } else {
      if (65 <= alter && "m" == geschlecht) {
	    window.alert("bereits AHV-Empfänger");
      } else {	  
	    window.alert("AHV-beitragspflichtig");
      }
   }
}	  
                

Lösung von: Raphael Hirsiger (Credit Suisse)

var alterOK = false;
while (!alterOK){
   alter           = window.prompt("Geben Sie Ihr Alter ein");
   if(isFinite(alter*1)) {
      alterOK = true;
   }
}

var geschlechtOK = false;
while (!geschlechtOK) {
   geschlecht      = window.prompt("Geben Sie Ihr Geschlecht ein (weiblich oder meannlich)");
   if("maennlich" == geschlecht || "weiblich" == geschlecht) {
      geschlechtOK = true;
   }
}

if (alter < 18) {
   window.alert ("noch nicht AHV-beitragspflichtig");}
if (alter >= 18 && alter <= 64 && "weiblich" == geschlecht) {
   window.alert ("AHV-beitragspflichtig");}
if (alter >= 18 && alter <= 65 && "maennlich" == geschlecht) {
   window.alert ("AHV-beitragspflichtig");}
if (alter > 64 && "weiblich" == geschlecht) {
   window.alert ("bereits AHV-Empfaenger");}
if (alter > 65 && "maennlich" == geschlecht ) {
   window.alert ("bereits AHV-Empfaenger");}
   
   
                

Lösung von: Arik Guggenheim (Credit Suisse)

hauptprogramm();

/////////////////////

function hauptprogramm(){
  var alter = alterEinlesen();
  if(alter >= 18) {
    var geschlecht = geschlechtEinlesen();
    pflichtigOderEmpfaenger(alter, geschlecht);
  } else {
    window.alert("noch nicht pflichtig");
  }
}

function pflichtigOderEmpfaenger(alter, g) {
  var obergrenzeNochPflichtig = 64;
  if("m" == g) {
    obergrenzeNochPflichtig = 65;
  }
  pflichtigOderEmpfaengerNachObergrenze(alter, obergrenzeNochPflichtig);
}

/**
 * og = Obergrenze
 * a  = alter
 */
function pflichtigOderEmpfaengerNachObergrenze(a, og) {
  if(a > og) {
    window.alert("AHV Empfaenger");
  } else {
    window.alert("AHV Pflichtig");
  }  
}


function alterEinlesen() {
  while(true) {
     var alterEingabe = window.prompt("Bitte alter (0..120) eingeben");
     alterEingabe = alterEingabe * 1;
     if(isFinite(alterEingabe)) {
       if(alterEingabe >= 0 && alterEingabe < 121) {
	   return alterEingabe;
       }
     }
  }
}

function geschlechtEinlesen() {
  while(true) {
    var g = window.prompt("Bitte Geschlecht(m|w) eingeben");
    if("m" == g | "w" == g) {
      return g;
    }
  }     
}
                

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

*process langlvl(saa2);
*process limits(fixeddec(31));
*process aggregate, attributes;
*process flag(W), source, insource, options, xref,nest, number, offset;
*process gonumber, snap;
*process or('!');

 /*********************************************************************/
 /* Autor : philipp gressly freimann (@ http://www.sanits-training.ch)*/
 /* Datum : 15. Nov. 2011                                             */
 /* Aufgabe 3.6 (Programmieraufgaben.ch: AHV)                         */
 /*********************************************************************/

 AHV : proc options(main noexecops);

  dcl AlterC     char(64)         ;
  dcl Alter      bin fixed(31)    ;

  dcl Geschlecht char(64)   ; /* 'w'.., 'm'.. */

  dcl NOCH_NICHT char(128)    value("Noch nicht AHV-beitragspflichtig"),
      PFLICHTIG  char(128)    value("AHV-beitragspflichtig"),
      BEZUG      char(128)    value("Bereits AHV-Empfaenger");

  /* ... */
  dcl WBezug     bin fixed(31) value(64),
      MBezug     bin fixed(31) value(65);

  /* Temporaer */
  dcl (ww, mm) bit(1);

  display ("Bitte geben Sie Ihr Alter ein: ")
  reply(AlterC);
  Alter = AlterC;

  display ("Bitte geben Sie Ihr Geschlecht (w/m) ein: ")
  reply(Geschlecht);

  if(Alter < 18) then do;
    display(NOCH_NICHT);
  end;
  else do;

    ww = ('w' = Geschlecht) & (Alter <= WBezug);
    mm = ('m' = Geschlecht) & (Alter <= MBezug);
    if(ww ! mm) then do;
      display(PFLICHTIG);
    end;
    else do;
      display(BEZUG);
    end;
  end;

 end AHV;
                

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

package ch.programmieraufgaben.sequenz;

import java.util.Scanner;


public class AHV {
  public static void main(String[] args) {
    new AHV().top();
  }
  
  void top() {
     int  alter              = einlesenInt ("Alter");
     char geschlecht         = einlesenChar("Geschlecht");
     int  minBeitragspflicht = 18;
     int  maxBeitragspflicht = 64;
     String ausgabe          = "AHV-beitragspflichtig";
     
     if('m' == geschlecht) {
         maxBeitragspflicht = 65; 
     }
     
     if(alter < minBeitragspflicht) {
       ausgabe = "noch nicht AHV-beitragspflichtig";
     }
     if(alter > maxBeitragspflicht) {
         ausgabe = "bereits AHV-Empfänger";
     }
     System.out.println(ausgabe);  
  }
  
  // generelle Hilfsfunktionen
  Scanner sc = new Scanner(System.in);
  int einlesenInt(String wert) {
      meldung(wert);
      return sc.nextInt();
  }
  char einlesenChar(String wert) {
      meldung(wert);
      return sc.next().charAt(0);
  }
  void meldung(String wert) {
    System.out.println("Bitte " + wert + " eingeben:" );
  }
  
} // end of class AHV
                

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

{$R+}
{$B+}
program AHVBeitrag(input,output);
{FernUni Hagen}
{ Ermittlung vonn Beitragpflichtigen und nicht Beitragpflichtigen Personen
  Eingabe von Alter und Geschlecht}
var
Alter : integer;
Gesch : string;
begin
  Alter := 0;
  Gesch := '';
  write('Geben Sie das Alter an: ');
  readln(Alter);
  write('Geben Sie den Geschlecht an: ');
  readln(Gesch);

  if (Alter < 18) then {Minderjährige}
  begin
    writeln('noch nicht AHv beitragspflichtig');
    readln() {nur um die kosoleausgabe zu sehen}
  end
  else
  if(Alter >=18) and (Alter <= 64) and (Gesch='Mann')  then {Männer}
  begin
    writeln('AHV-Beitragspflichtig');
    readln() {nur um die kosoleausgabe zu sehen}
  end
  else
  if(Alter >=18) and (Alter <= 65) and (Gesch='Frau')  then {Frauen}
  begin
    writeln('AHV-Beitragspflichtig');
    readln() {nur um die kosoleausgabe zu sehen}
  end
  else
    writeln('AHV-Empfaenger');
    readln() {nur um die kosoleausgabe zu sehen}
end. 
                

Lösung von: Name nicht veröffentlicht

function isLiableToAHV (sex, age) {
  if (age < 18) return 'noch nicht AHV-beitragspflichtig';
  if ((sex == 'w' && age >= 64) || (sex = 'm' && age >= 65))
    return 'bereits AHV-Empfänger';
  return 'AHV-beitragspflichtig';
}

// eingabemaske
document.write(`
  <label>Alter: </label>
  <input type="number" id="age" onchange="answer()">
  <label>Geschlecht: </label>
  <select id="sex" onchange="answer()">
    <option value="m">männlich</option>
    <option value="w">weiblich</option>
  </select>
  <div id="info">&nbsp;</div>
`);
function answer() {
  document.getElementById('info').innerText =
    isLiableToAHV(document.getElementById('sex').value, document.getElementById('age').value);
}                                                            // lissalanda@gmx.at
                

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

function isLiableToAHV (sex, age) {
  if (age < 18) return 'noch nicht AHV-beitragspflichtig';
  if ((sex == 'w' && age >= 64) || (sex = 'm' && age >= 65))
    return 'bereits AHV-Empfänger';
  return 'AHV-beitragspflichtig';
}

// eingabemaske
document.write(`
  <label>Alter: </label>
  <input type="number" id="age" onchange="answer()">
  <label>Geschlecht: </label>
  <select id="sex" onchange="answer()">
    <option value="m">männlich</option>
    <option value="w">weiblich</option>
  </select>
  <div id="info">&nbsp;</div>
`);
function answer() {
  document.getElementById('info').innerText =
    isLiableToAHV(document.getElementById('sex').value, document.getElementById('age').value);
}                                                            // lissalanda@gmx.at
                

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

// NET 6.x | C# 10.x | VS-2022
static string AHV(char geschl, int alter) => (geschl, alter) switch
{
    (_, < 18) => "noch nicht AHV-beitragspflichtig",
    ('w', >= 64) or ('m', >= 65) => "bereits AHV-Empfänger",
    (_, _) => "AHV-beitragspflichtig"
};

int alter = 0;
char geschl = '\0';
bool test = false;

while (!test || alter < 10 || alter > 120)
{
    Console.Write("Bitte Alter (10 - 120) eingeben: ");
    test = int.TryParse(Console.ReadLine(), out alter);
}

while (geschl is not 'w' and not 'm')
{
    Console.Write("Bitte Geschlecht (m/w) eingeben: ");
    var ck = Console.ReadKey();
    if (ck.Key is ConsoleKey.M or ConsoleKey.W)
        geschl = ck.KeyChar;

    Console.WriteLine();
}

Console.WriteLine($"\n({alter}, {geschl}) -> {AHV(geschl, alter)}");
                

Lösung von: Jens Kelm (@JKooP)

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

enum class Geschlecht { m, w };

std::string geschlecht[]{ "maennlich", "weiblich"};

struct person {
    const std::string nachname, vorname;
    const unsigned alter;
    const Geschlecht geschl;
};

using namespace std::literals;

inline const auto get_ahv_status(const person& p_) {
    if (p_.alter < 18)
        return "noch nicht AHV-beitragspflichtig"s;
    else if (p_.geschl == Geschlecht::w && p_.alter >= 64 || p_.geschl == Geschlecht::m && p_.alter >= 65)
        return "bereits AHV-Empfaenger"s;
    else
        return "AHV-beitragspflichtig"s;
}

inline const std::ostream& operator<<(std::ostream& os_, const person& p_) {
    os_ << "Nachname: " << p_.nachname << "\n";
    os_ << "Vorname: " << p_.vorname << "\n";
    os_ << "Alter: " << p_.alter << "\n";
    os_ << "Geschlecht: " << geschlecht[(unsigned)p_.geschl] << "\n";
    os_ << "Status: " << get_ahv_status(p_) << "\n";
    return os_;
}

int main() {
    person p1{ "Meier"s, "Hans"s, 67, Geschlecht::m };
    std::cout << p1;
}
                

Lösung von: Jens Kelm (@JKooP)

Aktionen

Bewertung

Durchschnittliche Bewertung:

Eigene Bewertung:
Bitte zuerst anmelden

Meta

Zeit: 0.5
Schwierigkeit: k.A.
Webcode: yo4o-3stj
Autor: Philipp G. Freimann (BBW (Berufsbildungsschule Winterthur) https://www.bbw.ch)

Download PDF

Download ZIP

Zu Aufgabenblatt hinzufügen