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.
0 Kommentare
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"> </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"> </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
Neue Lösung hinzufügen
Bewertung
Durchschnittliche Bewertung:
Meta
Zeit: | 0.5 |
Schwierigkeit: | k.A. |
Webcode: | yo4o-3stj |
Autor: | Philipp G. Freimann (BBW (Berufsbildungsschule Winterthur) https://www.bbw.ch) |