Új hozzászólás Aktív témák
-
#PeTeY#
aktív tag
válasz
kovisoft #5986 üzenetére
Nagyon köszönöm. Már munkahelyen vagyok, este megnézem.
Bár, most első ránézésre... Na, megpróbálom majd értelmezni. És tisztáznám, mit is akarok, mert valószínű nem voltam valami összeszedett már tegnap este. Mondjuk nem biztos, hogy most jobb lesz...
Szóval a feladat szerint a program egy fájlból kiolvas majd 3 dolgot. Egy egész számot, mint kód. Ennyi oszlopa lesz majd a mátrixnak, amibe be kell "tölteni" a harmadik paraméterben kapott szöveget, amit kódolni, vagy dekódolni kell. Illetve egy kulcsot azaz számsort, ami ebben a mátrixban mutatja az oszlopok sorrendjét. Kódolásnál be kell írni sorfolytonosan a mátrixba a szöveget: azaz a[0][0]-ba az első karakter, a[0][1]-be második, stb, és kiolvasásnál a kulcs által megadott sorrendben kell kiírni. Nálam a konkrét kódban, ugye a 3. oszlop utolsó sorában lévő karakter lesz az első, aztán ugyanezen oszlop utolsó előtti sorában lévő a második egészen az első sorig, majd jön a 4. oszlop utolsó sorában lévő, stb. Ezt a segítségetekkel sikerült is megcsinálni. Viszont a dekódolásnál ezt írja szó szerint a feladat: "A dekódoláshoz az adott sorrendben töltjük fel az oszlopokat, majd a szöveget sorfolytonosan olvassuk ki a táblázatból..." Azaz ha jól értem, fordítva kéne, mint a kódolásnál. Bocs a hosszú szövegért. -
#PeTeY#
aktív tag
válasz
kovisoft #5984 üzenetére
Valóban. Nagyon köszi... Logikus, hogy sorok esetében lentről felfelé kell haladni, ha azt akarom, hogy így legyen kiírva.
Pár év és belejövök.
Még egy kérdésem lenne, mert ehhez már nagyon fáradt vagyok: Hogyan oldom meg, ha azt szeretném, hogy a titkosítani kapott szöveget a kulcsnak megfelelően rendezze oszlopokba? Azaz itt az első négy karakter kerüljön a 3. oszlopba, úgy hogy az első karakter van a legalsó sorban... -
#PeTeY#
aktív tag
válasz
kovisoft #5982 üzenetére
Rendben. Szóval, a lényeg, hogy kódolni kéne egy szöveget úgy, hogy egy megadott kulcs alapján olvasom ki oszloponként a szöveget alulról felfelé. Sikerül megcsinálni a kódolás részét, azaz megfelelő sorrendben adja vissza az oszlopokat, de nem alulról felfelé. És nem látom, miért. Bár biztos ez is tök egyszerű:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int kod = 7;
int kulcs[32] = {3,4,2,1,5,6,7};
char szoveg[256] = {"eztaszovegetkelltitkositanod"};
int n = 28 / kod;
char tomb[n][kod];
FILE* ki = fopen("ki.txt", "w");
if (ki == NULL) {
printf("Nem sikerült megynitni a ki.txt-t! (%d)\n", __LINE__);
exit(1);
}
int i, j, count = 0;
for (i=0; i<n; ++i) {
for (j=0; j<kod; ++j) {
tomb[i][j]=szoveg[count];
count=count+1;
fprintf(ki, "%c ", tomb[i][j]);
}
fprintf(ki, "\n");
}
fclose(ki);
FILE* ki2 = fopen("ki2.txt", "w");
if (ki2 == NULL) {
printf("Nem sikerült megynitni a ki.txt-t! (%d)\n", __LINE__);
exit(2);
}
char kodolt[256];
int l=0;
for(j=0; j<kod; j++) {
for(i=0; i<n; i++) {
kodolt[l] = tomb[i][kulcs[j]-1];
fprintf(ki2, "%c", kodolt[l]);
}
}
fclose(ki2);
return 0;
}
-
#PeTeY#
aktív tag
Haladok a beadandómmal szépen lassan, nagy nehezen kitaláltam, minek hogyan is kellene működnie és működik is, de megint sikerült elakadnom. Esetleg valaki rá tudna nézni privátban a kódomra, hogy mi vele a gond?
-
#PeTeY#
aktív tag
Sziasztok. Segítséget szeretnék kérni. Elkezdtem teljesen nulláról programozást tanulni, beiratkoztam egyetemre 38 éves fejjjel. Egyelőre nagyon tetszik, már csak azért is, mert teljesen sötét vagyok hozzá.
Szóval belefutottam egy feladatba (beadandó) és próbálom megoldani. A program egy fájlból kap mindenféle paramétert, ami alapján titkosít egy szöveget, amit kiír egy másik fájlba, de nem is ez a lényeg. Igyekszem lebontani kisebb részekre, de már az elején elakadtam. Azt szeretném megoldani, hogy egy szöveget mátrixos elrendezésben írjon ki, de nem sikerül. Egyszerűen csak kiírja egy sorba. Mit rontok el? Eddig jutottam:#include <stdio.h>
#include <stdlib.h>
int main()
{
char szoveg[256] = {"eztaszovegetkelltitkositanod"};
char tomb[4][7];
FILE* ki = fopen("ki.txt", "w");
if (ki == NULL) {
printf("Nem sikerült megynitni a ki.txt-t! (%d)\n", __LINE__);
exit(1);
}
int i, j, count = 0;
for (i=0; i<4; ++i) {
for (j=0; j<7; ++j) {
tomb[i][j]=szoveg[count];
count=count+1;
fprintf(ki, "%c ", tomb[i][j]);
}
}
return 0;
}
Előre is köszönök minden segítséget.
Új hozzászólás Aktív témák
Hirdetés
● olvasd el a téma összefoglalót!
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- Ikea Eilif Paraván - Asztali elválasztó
- Bomba ár! Dell Latitude E5550 - i5-5GEN I 8GB I 128GB SSD I 15,6" FHD I W10 I HDMI I Cam I Gari!
- ÁRGARANCIA!Épített KomPhone Ryzen 7 7700X 32/64GB RAM RTX 5070Ti 16GB GAMER PC termékbeszámítással
- Azonnali készpénzes Apple Macbook Air felvásárlás személyesen / csomagküldéssel korrekt áron
- ÁRGARANCIA!Épített KomPhone i7 14700KF 32/64GB RAM RTX 5080 16GB GAMER PC termékbeszámítással
Állásajánlatok
Cég: Promenade Publishing House Kft.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest