Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: C++: Apua koulutehtäviin

Sivun loppuun

Esko69 [28.01.2008 10:44:40]

#

Tarvitsisin apua seuraavissa tehrävissä jotka pitäisi tehdä c++ kielellä eli pienikin apu tarpeen itselläni jonkinlaiset pohjat mutta en rupea tähä nyt laittamaan mutta siis olen todella kiitollinen avusta. Tässä tehtävät:

1. Ohjelma joka pyytää käyttäjältä kokonaislukua. Ohjelma tulostaa kaikki kokonaisluvut alkaen antamasta arvosta ja päättyen kymmenen suurempaan kokonaislukuun. (eli jos annat luvun 5, niin tulostus alkaa luvusta 5 ja päättyy lukuun 15.)

2. Ohjelma joka pyytää käytäjältä kolmen janan pituutta ja palauttaa käyttäjälle tiedon siitä, että voidaanko janoista muodostaa suorakulmainen kolmio.

3. Ohjelma joka muodostaa halutun kertotaulun. Käyttäjältä kysytään mikä kertotaulun tehdään. (esim. jos annetaan kolme, niin tulostus on seuraavanlainen).

1*3=3
2*3=6
3*3=9
4*3=12
5*3=15
6*3=18
7*3=21
8*3=24
9*3=27
10*3=30

4. Ohjelma joka kysyy käyttäjältä kokonaislukuja (positiivisa, negatiivisia ja nollia) lopetus ESC näppäimellä. Tulostus esim. seuraavasti:

Postitiivisia lukuja = kpl
Negatiivisa lukuja = kpl
Nollia = kpl

Pienikin apu missä vaan tehtävässä on todella tervetullot Kiitos jo etukäteen

vehkis91 [28.01.2008 11:17:01]

#

Tämän pitäisi toimia 1. tehtävään.

#include <iostream.h>

int main(void)
{
 int kokonaisluku;
 cout<<"Anna kokonaisluku: "
 cin>>kokonaisluku;
 cout<<endl;

 cout<<kokonaisluku<<endl;
 kokonaisluku=+1;
 cout<<kokonaisluku<<endl;
 kokonaisluku=+1;
 cout<<kokonaisluku<<endl;
 kokonaisluku=+1;
 cout<<kokonaisluku<<endl;
 kokonaisluku=+1;
 //pistät vaan 15x ton koodin niin pitäis onnistua...


}

Toi ei ole paras vaihtoehto, mutta tuonkin pitäis toimia... ;)

Gaxx [28.01.2008 11:42:22]

#

1) Kun yhdistät vehkiksen koodiin vielä for-silmukan niin saat jonkun järkevän lopputuloksen. Entä, jos ohjelman pitäisi tulostaa lukua seuraavat 100 lukua? Tai vaikkapa 10 000?

2) Tähän nyt en muuta vinkkiä osaa antaa, kuin kynä ja paperi esiin ja miettimään, milloin janoisa voi muodostaa suorakulmaisen kolmion. Minusta tämä tehtävä on toteutukseltaan hankalin.

3) For-silmukka on tässäkin tehtävässä hyödyllinen. Lue käyttäjältä luku ja käyt luvut läpi(for-silmukalla) yhdestä kymmeneen ja tulostat joka kierroksella yhden kertolaskun.

4) Luo kolme muuttujaa(muista alustaa nolliksi :) ), kullekin "lukutyypille" omansa. Sitten luet lukuja silmukalla ja tutkit if- tai case-rakenteella, mitä tyyppiä ne ovat ja kasvatat luotujen muuttujien arvoja sen mukaan.

Pekka Karjalainen [28.01.2008 12:42:53]

#

2) Pythagoraan lause auttaa.

http://fi.wikipedia.org/wiki/Pythagoraan_lause

lainaus:

jos kolmion kahden lyhemmän sivun neliöiden summa on yhtä kuin pisimmän sivun neliö, on kolmio suorakulmainen.

Metabolix [28.01.2008 16:15:35]

#

Ja tässä vaiheessa lienee hyvä myös kertoa, että koulutehtäviin et (toivottavasti) saa täältä suoria vastauksia, ei se läksyjen tekeminen niin toimi. Eiköhän teille ole tarvittavat asiat kurssilla opetettu, joten nyt vain käsiksi siihen itse ohjelmointiin eli miettimään, miten niistä palasista tehdään tuollainen ohjelma!

vehkis91 laittoi plussan ja yhtäsuuruuden väärin päin. Joka tapauksessa for-silmukka on järkevämpi vaihtoehto kuin 10 erillistä korotusta. Silmukan indeksimuuttuja käy läpi arvot nollasta kymmeneen, ja joka kierroksella tulostetaan (luku + indeksi).

Kray [28.01.2008 16:57:15]

#

vehkis91 kirjoitti:

kokonaisluku=+1;

Mikä idea tuossa on? Se asettaa muuttujan kokonaisluku arvoksi 1 (tai +1, miten vaan)
Siihen lisätään näin: ++kokonaisluku, kokonaisluku++ tai kokonaisluku+=1.

Edit: Sori, Metabolix huomasikin.

Pekka Karjalainen [28.01.2008 18:07:48]

#

Off-topic: kokonaisluku =+ 1; on se alkuperäinen tapa lisätä kokonaislukuun yksi. Kernighan ja Ritchie muuttivat tämän kuitenkin uudemmassa C-kielen versiossa (kauan ennen ANSI-standardia). Nykyinen C ei sitä tietenkään tunnista, eikä mikään C:stä rakenteita perinyt kieli.

Esim. tässä vuodelta 1974 olevassa liian vanhassa C-oppaassa on tämän muotoisia sijoituslauseita.

http://www.lysator.liu.se/c/bwk-tutor.html

Tässä kohta 25. kappaleesta (ankkuri #assignment)

An unusual feature of C is that the normal binary operators like `+', `-', etc.  can be combined with the assignment operator `=' to form new assignment operators.  For example,
       x =- 10;
uses the assignment operator `=-' to decrement x by 10, and
       x =& 0177
forms the AND of x and 0177.

Jatkossa mainitaan, että välilyönnit merkinnän ympärillä ovat oleellisia, ettei se jäsenny väärin. Sellainen rajoitushan sitten lopulta motivoi siirtymisessä nykyiseen muotoon.

Historian siipien havinaa :-)

No se siitä sivuraiteesta. Toivottavasti alkuperäinen kysyjä innostuu näyttämään vähän omaakin työtä asian eteen, jolloin apua tarjotaankin mieluummin.

Näin muuten juuri samanlaisen viestin Suomi24.fi:n Tietotekniikka-keskusteluissa. Sitä jos kovin moneen paikkaan kirjoittelee apupyyntöjä, kuluttaa vaan enemmän aikaansa kuin jos tekisi ihan itse alusta asti...

vehkis91 [28.01.2008 19:13:55]

#

Joo sori toi "kokonaisluku=+1" kirjoitin nopeasti sen, enkä pahemmin miettinyt sitä...


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta