Apua aloittelijalle ohjelmointitehtävään

Anonyymi

Help! Olen aivan aloittelija ohjelmoinnin saralla, ja nyt on tullut vastaan pari harjoitustehtävää jotka eivät vaan kerta kaikkiaan lähde. Voisiko joku auttaa? Ihan suora ratkaisu tehtäväänkin auttaa, sen läpi käymällä tajuaisin varmaankin missä olen itse mennyt metsään :)

Tehtävä:
Tee ohjelma, joka kysyy oppilaiden koearvosanoja (kokonaisluvut 4-10 käytössä) ja laskee syötettyjen arvosanojen keskiarvon. Ohjelman tulee ottaa vastaan arvosanoja, kunnes arvosanojen syöttö lopetetaan negatiivisella kokonaisluvulla. Lopuksi ohjelma tulostaa arvosanojen lukumäärän sekä lasketun keskiarvon. Vain luvut 4-10 huomioidaan keskiarvoon. Jos käyttäjä antaa jonkin muun luvun, kysytään uusi luku.

Vihje:
Voit laatia ohjelman joko while- tai do...while-lauseen avulla. Käytä arvosanojen ja keskiarvon tallentamiseen liukulukutyyppisiä muuttujia.

Ohjelma kirjoitetaan luokkaan, jonka nimi on ŽKeskiarvoŽ.

Esimerkkituloste:
Ohjelma laskee syötettyjen arvosanojen keskiarvon.
Lopetus negatiivisella kokonaisluvulla.
Anna arvosana (4-10):6
Anna arvosana (4-10):7
Anna arvosana (4-10):8
Anna arvosana (4-10):9
Anna arvosana (4-10):9
Anna arvosana (4-10):4
Anna arvosana (4-10):6
Anna arvosana (4-10):7
Anna arvosana (4-10):6
Anna arvosana (4-10):-1
Ohjelmaan syötetty 9 arvosanaa.
Arvosanojen keskiarvo: 6.888888888888889

Kiitos!

5

195

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • Anonyymi

      module keskarijuttu;
      import std.stdio;

      class KeskariClassi {
      static float arvosanat () {
      int[] arvosanat;

      do {
      write("Syötä arvosana: ");

      int arvosana;

      readf("%d", &arvosana);

      if (arvosana >= 4 && arvosana <=10) {
      arvosanat~= arvosana;
      }
      else {
      writeln("Väärä arvosana!");
      }
      } while (arvosana >= 0)

      float keskari;

      foreach (a; arvosanat) {
      keskari = cast(float) a;
      }

      keskari = cast(float) arvosanat.length / keskari;

      return keskari;
      }
      }

    • Anonyymi

      // T: Tee ohjelma, joka kysyy oppilaiden koearvosanoja (kokonaisluvut 4-10 käytössä) ja laskee syötettyjen arvosanojen keskiarvon. Ohjelman tulee ottaa vastaan arvosanoja, kunnes arvosanojen syöttö lopetetaan negatiivisella kokonaisluvulla. Lopuksi ohjelma tulostaa arvosanojen lukumäärän sekä lasketun keskiarvon. Vain luvut 4-10 huomioidaan keskiarvoon. Jos käyttäjä antaa jonkin muun luvun, kysytään uusi luku.

      import java.io.*;

      public class Keskiarvo {

      public static void main(String[] args) {

      int lukujenLkm = 0;

      double luku,
      lukujenSumma = 0,
      lukujenKarvo;


      System.out.println("Ohjelma laskee syötettyjen arvosanojen keskiarvon.\n"
      "Lopetus negatiivisella kokonaisluvulla.\n");


      // Lukujen summan laskenta:
      System.out.println("Anna arvosana (4-10):");
      luku = Double.valueOf(luku);
      while (luku > 4 || luku < 10) {
      lukujenSumma = luku;
      lukujenLkm;
      luku = Double.valueOf(luku);; // seuraava luku tai loppumerkki
      }

      // Keskiarvon tulostus (estetään 0:lla jakaminen):

      if (lukujenLkm == 0)
      System.out.println("\nEi lukuja, ei keskiarvoa.\n");
      else {
      lukujenKarvo = lukujenSumma/lukujenLkm;
      System.out.println("Ohjelmaan syötetty" lukujenSumma "arvosanaa.\nArvosanojen keskiarvo:" lukujenKarvo);
      }
      }
      }

    • Anonyymi

      no siitä ei ole kokemusta että en tarkkaan osaa sanoa mutta suurinpiirtein se menis niin että nimeät taulukkomuuttujan johon ne arvotsanat syötetään esim

      int arvosanat[] = new int[100];
      int i = 0;
      (tämä on javaa, kaiketi c suunnilleen sama periaate)

      looppin sisään tulee arvosanan määrittäminen muuttujaan ja i:n arvon kasvattaminen yhdellä

      do{
      lause jolla arvosana kysytään
      arvosanat = jotainmitälie;
      i
      }
      while (i >= 0);

      edit: unohtu se keskiarvon laskeminen

      eli muuttujat:

      double summa = 0;
      int a = 0;

      do
      {
      summa = summa arvosana
      i
      }
      while(a < i)

      double keskiarvo = summa / i
      lause jolla tulostetaan muuttuja "keskiarvo"

      toivottavasti tästä nyt saa jotain selkoa, googlesta löytyy varmaan parempiaki ohjeita jos jaksaa ettiä

    • Anonyymi

      Millä ohjelmointikielellä? Tässä oma versioni C :lla.

      #include <iostream>
      #include <limits>

      int main() {
      std::cout << "Keskiarvolaskuri laskee arvosanain keskiarvon." << std::endl;
      std::cout << "Negatiivinen arvo lopettaa ohjelman." << std::endl;
      int arvosana, summa = 0, lkm = 0;
      std::cout << "Syötä arvosana (4-10): ";
      std::cin >> arvosana;
      while (!(arvosana < 0)) {
      if (std::cin.good() && 4 <= arvosana && arvosana <= 10) {
      summa = arvosana;
      lkm = 1;
      std::cout << "Arvosanoja annettu " << lkm << ", keskiarvo on nyt " << ((float)summa / lkm) << std::endl;
      } else {
      std::cout << "Virheellinen arvo!" << std::endl;
      if (!std::cin.good()) {
      std::cin.clear();
      std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
      }
      }
      std::cout << "Anna seuraava arvosana: ";
      std::cin >> arvosana;
      }
      if (lkm) {
      std::cout << "Arvosanoja annettiin yhteensä " << lkm << ", niiden keskiarvo on " << ((float)summa / lkm) << std::endl;
      } else {
      std::cout << "Yhtään arvosanaa ei syötetty." << std::endl;
      }
      }

    • Anonyymi

      Koodi:
      ###########
      #include

      int main()
      {
      int i = 0;
      int luku, ka, summa, maara;

      printf("Ohjelma laskee syötettyjen arvosanojen keskiarvon.\nLopetus negatiivisella kokonaisluvulla.\n");
      while(luku >= 0) {
      printf("Anna arvosana (4-10):");
      scanf("%d",&luku);
      summa = luku;
      i ;

      }
      maara = i - 1;
      ka = summa / maara;
      printf("Ohjelmaan syötetty %d arvosanaa.\n", maara);
      printf("Arvosanojen keskiarvo: %.2d", ka);

      return 0;
      }

    Ketjusta on poistettu 0 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. SDP haluaa LISÄÄ veroja bensa-autoille!

      Sdp:n vaihtoehtobudjetti esittää polttomoottoriautoille lisää veroja Sdp esittää tuoreessa vaihtoehtobudjetissaan verot
      Maailman menoa
      194
      17642
    2. Riikka se jytkytti BKT:stä nyt 0,3 prosenttia pois

      Ja vain kolmessa kuukaudessa! Vuositasollahan tuo tarkoittaa reilun prosentin pudotusta. Pärjäisi varmaan lasketteluss
      Maailman menoa
      52
      10127
    3. Vasemmistoaate on aatteista jaloin

      Kaikki saavat ja kukaan ei jää ilman. Kuka tuollaista voisi vastustaa?
      Maailman menoa
      179
      6268
    4. Persut: haluamme lisää veroja!

      Lisää lisää veroja huutaa persukuoro. Veroila Suomi nousuun! "Uusi matkailuvero eli matkailijamaksu peritään esimerki
      Maailman menoa
      1
      4202
    5. Antti Lindtman kiitti valtiovarainministeri Purraa

      Ministeri Purra kertoi ottavasa vastuun EU:n alijäämämenettelyyn joutumisesta. Hän myös sanoi tietävänsä, että Lindtman
      Perussuomalaiset
      48
      3269
    6. Suomalaisten enemmistö on (ateisteja / fiksuja / sosialisteja)

      Tai jokin noiden yhdistelmä, koska S-ryhmän markkinaosuus päivittäistavarakaupasta on yli 50 prosenttia.
      Maailman menoa
      27
      2967
    7. Brittiläinen vasemmistolehti: Sanna Marin oli vihdoin rehellinen

      Nyt tulee pahasti lunta tupaan Seiskan tähtitytölle. Ex-pääministerin kirjaa arvostellaan latteuksista ja itsekehusta.
      Maailman menoa
      53
      2959
    8. "Purra löylytti oppositiota", sanoi naistoimittaja Pöllöraadissa

      Kyllä, Purra tekee juuri sitä työtä mitä hänen tuossa asemassa pitää tehdä, hän antaa oppositiolle takaisin samalla mita
      Maailman menoa
      62
      2755
    9. Henkilökohtaisia paljastuksia Dubaista - Kohujulkkis Sofia Belorf on äitipuoli ja puoliso!

      Tiesitkö, että Sofia on äitipuoli ja rakastava puoliso? Sofia Belorf saa oman sarjan, jossa seurataan hänen Bling Bling
      Kotimaiset julkkisjuorut
      88
      2710
    10. Alexander C. G. riisti demari-Veijolta arvonimen

      "Stubb myönsi 66 arvonimeä ja peruutti yhden arvonimen. Presidentti Tarja Halonen myönsi Baltzarille kulttuurineuvoksen
      Maailman menoa
      55
      2187
    Aihe