Ú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
● olvasd el a téma összefoglalót!
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- Gamer PC-Számítógép! Csere-Beszámítás! I5 14400F / RX 6900XT 16GB / 32GB DDR5 / 1TB SSD
- BESZÁMÍTÁS! MSI B450 R7 2700 16GB DDR4 512GB SSD RTX 2060 Super 8GB Rampage SHIVA Zalman 600W
- REFURBISHED és ÚJ - HP USB-C/A Universal Dock G2 docking station (5TW13AA) (DisplayLink)
- Utolsó 1 darab - Sennheiser MOMENTUM 4 fejhallgatók (ELKELT)
- Bomba Ár! HP ProBook 650 G1 - i3-4GEN I 4GB I 120GB SSD I 15,6" HD I Cam I W10 I Garancia!
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest