Kezdőoldal » Számítástechnika » Programozás » Személyi szám ffi vagy nő?...

Személyi szám ffi vagy nő? Turbo pascalban

Figyelt kérdés
az lenne a feladat, h 11 jegyű személyi szám alapján elkell dönteni, h a tulajdonosa ffi vagy nő. a páratlan a férfi a páros a nő. csak az a baj, h úgy tudom csak megcsinálni, h egy számot írok be és az alapján dönt. esetleg valaki tudna segiteni?
2012. ápr. 1. 17:39
 1/7 2xSü ***** válasza:
Ugye 11 jegyű számnál szövegként célszerű bekérni. (Érdemes vizsgálni, hogy helyes formátumot adtak-e meg, azaz 11 karakter és csak számjegyet tartalmaz.) A szöveg első karakterét kell venni, és ha az megegyezik valamelyik páratlan számot jelentő karakterrel, akkor férfi, egyébként nő.
2012. ápr. 1. 17:42
Hasznos számodra ez a válasz?
 2/7 A kérdező kommentje:

csak az a baj nem tudom, h kell 11 számjegyet bekérni


program identity;

uses crt;

var a: array [1..11] of integer;

b: integer;


begin

begin

clrscr;

writeln('Szemelyi szam');

writeln;

writeln('Adja meg a programnak a szemelyi szamot majd megadja a program, hogy ferfi vagy no a tulajdonosa.');

writeln;

write('Kerem a szemelyi szamot:'); read(a);

case a of

1: write('A szemelyi szam tulajdonosa ferfi');

2: write('A szemelyi szam tulajdonosa no');

3: write('A szemelyi szam tulajdonosa ferfi');

4: write('A szemelyi szam tulajdonosa no');

5: write('A szemelyi szam tulajdonosa ferfi');

6: write('A szemelyi szam tulajdonosa no');

7: write('A szemelyi szam tulajdonosa ferfi');

8: write('A szemelyi szam tulajdonosa no');


end;

readln;

end;

readln;



eddig jutottam

end.

2012. ápr. 1. 17:58
 3/7 anonim ***** válasza:
Szövegként (string-ként kérd be) és ennek a string-nek nézd az első karakterét.
2012. ápr. 1. 18:03
Hasznos számodra ez a válasz?
 4/7 A kérdező kommentje:
ezt, h gondoltad?
2012. ápr. 1. 18:10
 5/7 anonim ***** válasza:

var szemelyiszam:string;

...

readln(szemelyiszam);

...

case szemelyiszam[1] of {az első karakterét vizsgáljuk a string-nek}

...

2012. ápr. 1. 18:44
Hasznos számodra ez a válasz?
 6/7 A kérdező kommentje:
sajnos nem jó :S
2012. ápr. 1. 18:56
 7/7 ejbenjaro ***** válasza:

Tessék, az alábbi kódot Free Pascal alatt fordítva kiírja neked, hogy Férfi-e, vagy Nő az illető a személyi szám alapján. Sőt, mielőtt ezt megtenné, leellenőrzi, hogy helyes-e a megadott személyi szám.


program szemelyiszam;


{$mode objfpc}{$M+}


uses Sysutils, DateUtils;


type

str11=string[11];


function isFerfi(c:char):boolean;

begin

case c of

'1','3','5','7' : Result:=True;

else Result:=False;

end;

end;


function isKorrekt(szam :str11):boolean;

var

year: word;

day: word;

month: word;

x,i: byte;

tmp: string;

begin

tmp:='';

x:=0;

if StrToInt(szam[1]) in [1..8] then

begin

tmp:=copy(szam,2,2);

year:=StrToInt(tmp);

tmp:='';

tmp:=copy(szam,4,2);

month:=StrToInt(tmp);

tmp:='';

tmp:=copy(szam,6,2);

day:=StrToInt(tmp);

tmp:='';

if StrToInt(szam[1]) in [1,2,5,6] then Year:=Year+1900;

if StrToInt(szam[1]) in [3,4] then Year:=Year+2000; //ebben az esetben az 1800-as években is születhetett de azt moost nem vesszük figyelembe!

if StrToInt(szam[1]) in [7,8] then Year:=Year+1800;

if isValidDate(Year,Month,Day) then

begin

if Year<1997 then

begin

for i:=1 to 10 do

x:=x+(StrToInt(szam[i])*i);

x:=x mod 11;

end

else

begin

for i:=1 to 10 do

x:=x+(StrToInt(szam[i])*(11-i));

x:=x mod 11;

end;

if x=StrToInt(szam[11]) then Result:=True

else Result:=False;

end

else Result:=False;

end

else Result:=False;

end;


var

szemszam: str11;


begin

repeat

writeln('---');

write('Kérem a személyi számot: ');

readln(szemszam);

if not isKorrekt(szemszam) then writeln('Hibás személyi számot adott meg!');

until isKorrekt(szemszam);


if isFerfi(szemszam[1]) then writeln('Az illető Férfi.')

else writeln('Az illető Nő.');

end.

2012. ápr. 1. 20:04
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!