Jump to content
GSForum - Segélyvonal

Programozási feladatok


Kovács Dávid ( Davs )
 Share

Recommended Posts

Kovács Dávid ( Davs )

Hy!

Ide lehetne akkor szerintem feladni a feladatokat, és a Hogyan tanuljunk programozni c. topicból ezeket a hozzászólásokat át lehetne hozni.

Link to comment
Share on other sites

csutomi

Van egy feladat, ami nekem nagyon tetszett:

Fájlmásolás bájtonként úgy, hogy miközben másolunk, két zárójel között vizuálisan is lássuk, hogy körülbelül hol tart a másolás. Például Két zárójel van egymástól 10 karakternyi távolságra, majd ahogy eléri a másolás a 10%-ot, a zárójel utáni elsõ pozícióba bekerül egy = jel, majd 20% után a másodikba is egy = jel és így tovább. Valahogy így fog kinézni:

az elején:
(          )
a közepén:
(=====     )
a végén:
(==========)

Nagyon hasznos, különösen nagyobb fájlok esetén.

Link to comment
Share on other sites

Kovács Dávid ( Davs )

Hááát...Filekezelést nem nagyon tudom c++-ban. De talán elméletileg: megszámolom, menyi karakter van a fileban, elosztom tízzel, és ha azt a tizedet átmásolta, akkor hozzáadok egy = jelet. Ezt kb. úgy, hogy kitörlöm az egész két zárójelet, és újraírom. És pl. egy változó tárolná, hogy hány jel kell. De majd ha eljutok a filekezelésig, akkor talán.

Link to comment
Share on other sites

Adani

Minden programozási könyv elsõ feladata, a szöveg kiíratás. Majdnem mindne szakirodalombna szerpeel az abszolút kezdõknél, hogy irassuk ki, hogy " Hello world"

 

C-ben ez nem nehéz dolog:

 

Void main()

{

Printf("Hello World");

}

 

Pascalban ugyanez:

 

BEGIN

 

Writeln("Hello World");

 

END

Link to comment
Share on other sites

Gereby

Én is bedobnék ide egy két feladatot. Programozásórán csináltuk ezeket C-ben.

1.

Táblázatrajzoló (For ciklus gyakorlására)

A prog. a futás elején bekéri, hogy milyen széles és milyen magas legyen a cella, majd ASCII kódok alapján kiír egy 2X2-es táblázatot a beadott adatok alapján.

Ennek fokozása: Megkérdezi, hogy hány cella legyen függõlegesen, és vízszintesen.

 

2.

Szummázó (Do-while)

A prg. folyamatosan kéri a számokat, és kiírja, hogy hanyadik számot olvassa be.

Ha 0-át ütünk be, abba hagyja a bekérést, majd kiírja, hogy hány számot adtunk be, és a beadott számok összegét kidobja.

 

3.

Átlag (tömbök)

Van egy osztály, amelyik írt két dolgozatot. A két dolgozat pontjait összeadva osztályoz a tanár. (max. 100pont) A prog. elõsször bekéri, hogy hány tanuló van az osztályban, majd beolvassa az 1. dolgozat pontszámait, majd a 2. dolgozat pontszámait tanulónként (1. tanuló 1. dolgozatának pontszáma:, 2. tanuló 1. dolgozatának pontszáma:...) Mikor ez megvan, a prog. kiszámolja a dolgozatok pontszámainak átlagát, összeadja a 2 dolgozat pontszámait, az összpontszámokból kiszámolja a tanuló jegyét valamilyen pontrendszer szerint (pl: 100-90 5, 89-79 4, 78-58 3, 57-20 2, 19-0 1), a jegyekbõl is átlagot von, majd kiszámolja a tanuló szórását (átlagtól való eltérését) a jegyek alapján. Majd mikor mind ez ki van számolva, valami szép, áttekinthetõ, érthetõ formában kiírja.

 

Nos hát ennyi egyenlõre. Jó munkát!

Link to comment
Share on other sites

Kovács Dávid ( Davs )

Hy!

A cella magasságán/szélességén mit értesz? Pixelben?

 

A 2. kész, most csinálom a 3.-at.

 

2. Feladat

CPP

EXE

Link to comment
Share on other sites

Gereby

Karakterben! Nem rajzolás hanem kiíratás. Az ASCII kódtáblázatban vannak olyan karakterek, amelyekkel táblázatot lehet csinálni.

Link to comment
Share on other sites

Kovács Dávid ( Davs )

|****|****|

|****|****|

 

Ilyen? És mit kell belé írni? Semmit? Szóköz jó? A magasságot mivel kell? Vagy a sorok között kell egy \n .

 

Már nem aktuális, mert megvan az elsõ:

CPP

EXE

Link to comment
Share on other sites

Gereby

Nem olyan! Itt az ASCII kódtábla.

A 180-as megy a 200-as elemekt nézegesd! Azok ilyen csíkok. na azokból lehet.

A prog pedig így néz ki:

Bekéri a két adatot, majd megcsinálja a táblázat tetejét: Elõsször printf ╔ (201-es ascii)

aztán for ciklus annyiszor fut amilyen szélesnek megadtuk a cellákat a magjában: printf ═ majd a közép elem, majd megin forciklos, majd lezáró elem, \n.

Itt jön a magasság: itt egymásba ágyazott for ciklusokat alkalmazunk. Az egész annyiszor fut amilyen magasnak adtuk. Az alap for cikluson belül meg: oldalelem, for szóköz annyiszor amilyen széles a cucc, középelem, for, oldalelem,\n. Alap for vége.

És így tovább. Mostmár menni fog.

 

Egyébként én Borland C-t tanulok, magyarul én nem értem a Te forráskódodat... :upsz:

 

UI: Most látom, hogy elkészültél, de hát hogymondjam, nem az igazi... nállam valami igen érdekes táblázatot adott ki. Próbáld úgy, ahogy én írtam! ;)

 

UI2: printf=cout...

Edited by Gereby
Link to comment
Share on other sites

Kovács Dávid ( Davs )

Akkor csak ellenõrizd az exe-t ;)

Ja, és ezeket a speciális karaktereket hogyan írjam ki? Mint rendes karakter, nem? Akkor meg kérlek másold ide a szükségeseket.

 

A sorok között hagytam ki egy sort, hogy látható legyen, hogy egy cella milyen magas. A függõleges vonalok pedig a cellák határai. Egy cella 2 ilyennel rendelkezik, egy bal, egy meg jobb oldalon van. Na és akkor most még egyszer futtasd le!

Link to comment
Share on other sites

Gereby

Nyomod az alt-ot és a numpadon meg bepötyögöd a számát. VAGY (nemtudom, hogy a Te C-d ben ugyan így van-e vagy sem de azért leírom) A kiíratásban a karakter helyére %c-t írsz (karakter kiíratási forma) aztán a " után egy vesszõ, és az ascii kód.

Link to comment
Share on other sites

Kovács Dávid ( Davs )

A második nem jó, de az elsõ igen. Köszi. Akkor majd átírom. Talán majd csak holnap, mert mára már kb. ennyi is elég. Volt a szorzótábla, meg a Te 2 feladatod...

Link to comment
Share on other sites

Kovács Dávid ( Davs )

De azok a speciális karakterek nem ANSI-k, és akkor már baja van a \n -nel is. Szal vagy ANSI vagy Unicode, vagy ASCII. Tehát ez nem megy C++-ban. Inkább megvárjuk Arpsoftot, õ biztos tudja. Megünk a 3. feladatra, és mára vége.

Link to comment
Share on other sites

csutomi
C-ben ez nem nehéz dolog:

 

Void main()

{

Printf("Hello World");

}

Húha, most elkövetted a legkezdõbb kezdõ C programozó hibáját! A C-ben a kis és nagybetûnek jelentõsége van. Ebbõl is látszik, hogy még egy ilyen egyszerû programot is meg lehet írni hibásan. (Ezért kell sokat gyakorolni)

Még valami: kimaradt az #include <stdio.h>

 

@Davs: A 852-es kódlap a magyar, ezenkívül a 32 alattiakat azért nem tudod kiírni simán, mert azok vezérlõ karakterek. Benne van pl. az ENTER kódja is.

Link to comment
Share on other sites

Kovács Dávid ( Davs )

@csutomi

Ezt a kódlapos izét elmagyaráznád?

 

@Gereby

Van az utolsó feladat. Ott külön ki kell írni a dogák átlagát, vagy csak az egészét kell?

 

A Hello World-ös dologhoz:

HTML:

<html>

<body>

Hello World

</body>

</html>

 

PHP:

<?php

print "Hello World" ;

?>

 

Python:

print "Hello World!"

 

C++:

 

#include <iostream>

void main() {

cout<<"Hello World!" ;

}

 

;):upsz: Kb. ennyit ismerek.

Link to comment
Share on other sites

csutomi
Ezt a kódlapos izét elmagyaráznád?

Minden országban más kódlapot használnak a betûk megjelenítéséhez. Gondold el, hogy például egy orosz szöveget nem lehet azokkal a karakterekkel leírni, mint egy magyart. A miénk, vagyis a magyar a 852-es (DOS alatt). És persze ez változhat például akkor is, ha Windowst használsz, mert ott is más karakterek jelennek meg. Nálunk az ékezetes betûknél szokott ez gondot jelenteni. Én így tudom.

Link to comment
Share on other sites

Gereby

@Davs: Az 1. doga pontszámainak átlaga, a 2. doga pontszámainak átlaga, a tanulók 2 dogájának pontszáma alapján létrejött jegyek átlaga.

Link to comment
Share on other sites

atzs

Írd ki az elsõ n Fibonacci-számot. Írd ki az n. (n-edik) Fibonacci számot.

 

Fibonacci számok: Az elsõ 0, a második 1, a többi mindig az elõzõ kettõ összege. (0 1 1 2 3 5 8 13 21 34 ...)

 

 

Írd ki a Pascal-háromszög n. sorát.

Link to comment
Share on other sites

Kovács Dávid ( Davs )

Gereby:

Megvan a 3. is, de nem a szépség a fõ ismérvem :upsz:

CPP

EXE

 

atzs:

Mi az a Pascal háromszög? Az elsõt meg kb. tudom.

Link to comment
Share on other sites

Kovács Dávid ( Davs )

atzs:

Megvan a Fibonacci-s:

CPP

EXE

 

Ja, és már megtudtam, hogy mi az a Pascal háromszög: Pascal-háromszög

Hááát...Nem lesz könnyû, de holnap majd megpróbálom összehozni.

Link to comment
Share on other sites

Greene

Srácok, olyanban kérném a segítségeteket, hogy kell a suliban írnom egy programot Pascal nyelven, ami egy bizonyos tulajdonságot vizsgál meg egy sorozatban.

Én egy "array [1..100] of integer" tömböt szeretnék feltölteni, 1-256-ig random számokkal. Ebben a tömbben aztán minden olyan számot keresek, ami 17-tel osztható. Ezeknek a számoknak kellene az indexe, és a szám maga, valamint egy teljes tömbszintû felsorolásban meg is szeretném jelölni melyek ezek a számok (az is elég ha egy csillag van utána).

Hát ebben kérném a segítségeteket. :upsz:

 

Elõre is köszi. :)

Link to comment
Share on other sites

arpsoft

Lehet, hogy vannak benne hibák, elég régen használtam a Pascal-t.

uses crt;

var
 i,iTomb[101] :integer;

begin
//feltöltjük a tömböt
 randomize;
 for i:=1 to 100 do
    begin
      iTomb[i]:=random(255)+1;
    end;
//ami osztható 17-tel (oszási maradéka 0), annak kiírjuk az indexét és az értékét
 for i:=1 to 100 do
   begin
     if iTomb[i] mod 17 =0 then
       begin
         writeln("Index: ",i," Érték:",iTomb[i]);
       end;
   end;
//ami osztható 17-tel (oszási maradéka 0), oda írunk csillagot,különben nem
 for i:=1 to 100 do
   begin
     if iTomb[i] mod 17 =0 then
       begin
         writeln(i,iTomb[i],"*");
       end
     else
       begin
         writeln(i,iTomb[i]);
       end;
   end;
end.

Link to comment
Share on other sites

atzs

Anno a Delphi topicban volt egy megegyezésünk, hogy nem oldunk meg senki helyett házi feladatot.

Link to comment
Share on other sites

Greene

@Arpsoft: Köszi! :istenvagy::)

 

@atzs: Sajnos én nagyon nem értek a Pascal-hoz (csak minimális szinten), és arra gondoltam ha már egyszer segélyvonal, akkor én olyanban kérek segítséget amit speciel én nem tudok (tehát nem lustaságból kértem segítséget!). :upsz:

Elnézést, ha tényleg volt egy ilyen megállapodás, akkor többet nem kérdezek ilyet. :(

Link to comment
Share on other sites

atzs

Ha belegondolsz, az nem célja a fórumnak, hogy komplett beadandó házikat itt bárki megcsináltasson a közösséggel. Nehéz persze meghúzni a határvonalat. A legjobb lenne megtalálni az egyensúlyt - segíteni annyit, hogy a kedves kolléga utána már meg tudja önállóan oldani a feladatot.

 

A másik oldala a dolognak, hogy itt van egy közösség is, amelynek Te pl. oszlopos tagja vagy, és a barátaidtól miért ne kérhetnél segítséget? ;) Örülök, hogy arpsoft tudott is épp segíteni. :)

 

Az a leghasznosabb szerintem, ha megpróbálod megcsinálni, és ha elakadsz, akkor kérsz a kritikus ponton segítséget.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...