Jump to content
GSForum - Segélyvonal

Programozási feladatok


Kovács Dávid ( Davs )

Recommended Posts

Kovács Dávid ( Davs )
Posted

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.

Posted

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.

Kovács Dávid ( Davs )
Posted

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.

Posted

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

Posted

É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!

Kovács Dávid ( Davs )
Posted

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

Posted

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

Kovács Dávid ( Davs )
Posted

|****|****|

|****|****|

 

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

Posted (edited)

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
Kovács Dávid ( Davs )
Posted

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!

Posted

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.

Kovács Dávid ( Davs )
Posted

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...

Kovács Dávid ( Davs )
Posted

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.

Posted
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.

Kovács Dávid ( Davs )
Posted

@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.

Posted
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.

Posted

@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.

Posted

Í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.

Kovács Dávid ( Davs )
Posted

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.

Kovács Dávid ( Davs )
Posted

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.

Posted

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. :)

Posted

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.

Posted

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

Posted

@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. :(

Posted

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.

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
×
×
  • Create New...