Presentation laddar. Vänta.

Presentation laddar. Vänta.

Array • Skriv ett program som frågar följande: ”Hur många tal vill du mata in?” användaren matat in ett tal t.ex n. då frågar programmet n ggr följande.

Liknande presentationer


En presentation över ämnet: "Array • Skriv ett program som frågar följande: ”Hur många tal vill du mata in?” användaren matat in ett tal t.ex n. då frågar programmet n ggr följande."— Presentationens avskrift:

1 Array • Skriv ett program som frågar följande: ”Hur många tal vill du mata in?” användaren matat in ett tal t.ex n. då frågar programmet n ggr följande ”mata in tal nr x:” (där x är från 1 t.o.m n) vid varje förfråga, matar användaren in ett påhittat tal och efter alla inmatade tal skriver programmet ut alla inmatade tal i omvända ordning. t.ex om användaren har matat in följande tal i den ordning som nedan 2, 4, 33, 34, 1, 56 då skrives ut alla inmatade tal i omvänd ordning: 56, 1, 34, 33, 4, 2

2 Deklaration av variabel1 (klassvariabler) Deklaration av metode1 (){ deklaration av lokala variabler... } Deklaration av klass { Deklaration av variabel2 (klassvariabler) Deklaration av metode2 (){ deklaration av lokala variabler... } Flera instansmetoder, klassmetoder och konstruktörer kan deklareras här … Flera instansvariabler eller klassvariabler kan deklareras här … } Programkodens uppbyggnad

3 Variabler En variabel kan vara någon av följande: •Klassvariabel •Instansvariabel •Lokalvariabel

4 Kännetecken för variabler •Kännetecken för en klassvariabel är: 1. deklareras med nyckelordet static 2. deklareras alltid utanför alla metoder men inom klassen •Kännetecken för en instansvariabel är: 1. deklareras INTE med nyckelordet static 2. deklareras alltid utanför alla metoder men inom klassen •Kännetecken för en lokalvariabel är: 1. deklareras INTE nyckelordet static 2. deklareras alltid inom en metod

5 Variablerdeklareras instansvariabler1.utanför metoder 2. utan static klassvariabler1.utanför metoder 2.med static lokala variabler1.inuti en metod 2.utan static

6 Deklaration av variabel1 (klassvariabler) Deklaration av metode1 (){ deklaration av lokala variabler... } Deklaration av klass { Deklaration av variabel2 (klassvariabler) Deklaration av metode2 (){ deklaration av lokala variabler... } Flera instansmetoder, klassmetoder och konstruktörer kan deklareras här … Flera instansvariabler eller klassvariabler kan deklareras här … } Programkodens uppbyggnad

7 Metoder En metod kan antingen vara en •Klassmetod •Instansmetod •Konstruktör

8 Kännetecken för metoder •Kännetecken för en klassmetod är att: 1. deklareras med nyckelordet static 2. har en returtyp •Kännetecken för en instansmetod är att: 1. deklareras INTE med nyckelordet static 2. har en returtyp •Kännetecken för en konstruktör är att: 1. deklareras INTE med nyckelordet static 2. har ingen returtyp

9 Metoddeklareras Klassmetod •med static •med returtyp Instansmetod • utan static •med returtyp Konstruktör •utan static •utan returtyp

10 klassvariabler och klassmetoder Deklaration av klassvariabler Deklaration och initiering av klassvariabel Deklaration av klassmetod Deklaration och initiering av lokal variabel import java.io.*; class Person { static String namn; static byte ålder; static String mailAdress; static BufferedReader stdin = new BufferedReader( new InputStreamReader(System.in)); public static void main(String []args)throws IOExcep…{ System.out.print(”Vad heter du?”); namn = stdin.readLine(); System.out.print(”Hur gammal är du?”); String ålderStr =stdin.readLine(); ålder = Byte.parseByte(ålderStr); System.out.print(”vad har du för ?”); mailAdress = stdin.readLine(); int född = ålder; System.out.println(namn+” är född år ” +född+” kan nås via mail: ”+mailAdress); }

11 Vi delar main till flera små delar … public static void main(String []args)throws IOException{ System.out.print(”Vad heter du?”); namn = stdin.readLine(); System.out.print(”Hur gammal är du?”); String ålderStr =stdin.readLine(); ålder = Byte.parseByte(ålderStr); System.out.print(”vad har du för ?”); mailAdress = stdin.readLine(); int född = ålder; System.out.println(namn+” är född år ” +född+” kan nås via mail: ”+mailAdress); } 1 2 3

12 System.out.print(”Vad heter du?”); namn = stdin.readLine(); System.out.print(”Hur gammal är du?”); String ålderStr =stdin.readLine(); System.out.print(”vad har du för ?”); mailAdress = stdin.readLine(); på vilket sätt är de lika? Ok,vi tittar närmare på de: • Det syns att System.out.println() anropas (används) i första raden i alla tre. • Det syns att stdin.readLine() anropas (används) i andra raden i alla tre. vad finns för olikheter då? t.ex ”vad heter du”, ”hur gammal är du” och ”vad har du för ” är olika men alla är av samma typ alltså String.

13 Hur ser klassmetoden ut i java kod? static String metodnamn( String parameternamn) Returtyp (utdata typ) i detta fall String Indata typ i detta fall String De får vi välja hur som helst

14 Static String läsSvar(String frågan){ System.out.println(frågan); String svar=stdin.readLine(); return svar; } Metoden kommer att se ut som nedan

15 Följande modell hjälper att skriva ihop en metod som vi önskar. Metod ”vad heter du?” ”Hur gammal är du?” ”vad har du för ?” Det syns att metoden tar en strängar som indata och returnerar den inlästa strängen som utdata ”vahid” ”18” Metoden har till uppgift att skriva ut på skärmen den sträng som kommer in som indata till metoden samt låta användaren mata in en sträng och inmatade strängen ska returneras.

16 class Person { static String namn; static byte ålder; static String mailAdress; static BufferedReader stdin = new BufferedReader( new InputStreamReader(System.in)); public static void main(String []args)throws IOException{ namn = läsSvar (”Vad heter du?”); String ålderStr=läsSvar (”Hur gammal är du?”); ålder = Byte.parseByte(ålderStr); mailAdress = läsSvar (”vad har du för ?”); int född = ålder; System.out.println(namn+” är född år” +född+” kan nås via mail: ”+mailAdress); } static String läsSvar(String frågan)throws IOException{ System.out.println(frågan); String svar=stdin.readLine(); return svar; } Den nya klasskoden ser så här ut

17 main Program m1() m2() m3() indata

18 main Program m1() m2() m3()

19 main Program m1() m2() m3()

20 main Program m1() m2() m3()

21 main Program m1() m2() m3()

22 main Program m1() m2() m3()

23 main Program m1() m2() m3()

24 main Program m1() m2() m3()

25 main Program m1() m2() m3() utdata

26 Exempel Skriv ett program som frågar efter temperatur i celsius och skriver ut motsvarnde temperatur i Farenheit och Kelvin. F=32+(1.8 x C) K= C

27 Uppgift Skriv ett program som frågar användarens förnamn, efternamn och studiestatus sedan skriver ut användarens användarnamn samt -adress. Krav: •Programmet ska bestå av två klasser. •I den ena klassen (körbara) ska main deklareras. •I den andra ska finnas några metoder som genererar fram användarnamn och adress. •Användaren ska kunna generera flera användarnamn och adresser utan att behöva starta programmet igen för en ny körning.

28 Uppgift forts. För att få lite bättre bild av hur programmet ska fungera brukar man skriva några scenario: En körninga kan se så här ut(Scenario 1): Vad heter du i förnamn? Vahid Vad heter du i efternamn? Mosavat Vad har du för studiestatus? d97 Ditt användar namn är d97_mod Ditt adress är Vill du generera ett nytt användarnamn?(j/n) j Vad heter du i förnamn ? … (här kommer programmet att fråga efternamn osv igen) En annan körninga av samma program kan se så här ut(Scenario 2): Vad heter du iförnamn? Per Vad heter du i efternamn? Johansson Vad har du för studiestatus? m00 Ditt användar namn är m00_jor Ditt adress är Vill du generera ett nytt användarnamn?(j/n) n (Här kommer programmet avslutas)

29 Lösning class Konto{ static String anvNamn; //skapaAnvNamn tar namn, efternamn och studiestatus //Och genererar ett användarnamn som tillslut returneras //skapa tar anvNamn och genererar en adress //samt skriver ut den men returnerar inte } public static String skapaAnvNamn(String namn, String efternamn, String status){ char bokst1=efternamn.charAt(0); char bokst2=efternamn.charAt(1); char bokst3=namn.charAt(namn.length()-1); anvNamn=status+"_"+bokst1+bokst2+bokst3; return anvNamn; } public static void skapa (String anvNamn){ char linje=anvNamn.charAt(0); System.out.println("din är: "+ }

30 Lösning forts. class Mimer{ static String anvNamn; static boolean fortsätt=true; static String namn; static String linje; static String efternamn; static BufferedReader stdin = new BufferedReader (new InputStreamReader(System.in)); public static void main(String []args)throws IOException{ do{ namn = läsSvar ("Vad heter du i förnamn? "); efternamn= läsSvar("Vad heterdu i efternamn? "); linje= läsSvar("vad har du för studiestatus?(t.ex:m95) ”); anvNamn=Konto.skapaAnvNamn(namn, efternamn,linje); System.out.println("ditt användarnamn är "+anvNamn); Konto.skapa (anvNamn); villDuFortsätta(); }while(fortsätt); } … … fortsättning på nästa sida

31 Lösning forts. … fortsättning på Mimer static String läsSvar(String frågan)throws IOException{ System.out.print(frågan); String svar=stdin.readLine(); return svar; } static void villDuFortsätta()throws IOException{ System.out.println("vill du fortsätta med ett nytt namn?(j/n)"); String svar=stdin.readLine(); if(svar.equalsIgnoreCase("n")){ System.out.println("Tack och hej, välkommen åter!"); fortsätt=false; }


Ladda ner ppt "Array • Skriv ett program som frågar följande: ”Hur många tal vill du mata in?” användaren matat in ett tal t.ex n. då frågar programmet n ggr följande."

Liknande presentationer


Google-annonser