Laborfeladat:
1. Adott egy input.txt file, amely első sorában egy szám van, N.
Az alatta levő N sorban szavak vannak, minden sorban N szó, " " el
elválasztva egymástól.
Írjunk egy C++ programot, amely a főátló feletti szavak első két
betűjét alakítja nagybetűvé, illetve a főátló alatti szavak utolsó két
betűjét,
majd az így kapott eredményt egy output.txt file ba írja.
2. Adott egy input.txt file amelyben telefonszámok vannak. Kétféle
telefonszám van,
Házi feladat:
A 2. feladatot módosítsuk úgy, hogy ne egy output.txt be kerüljenek
a telefonszámok, hanem attól függően, hogy vezetékes, Digis, vagy stb,
külön külön fileokba.
Vagyis a vezetékesek egy "vezetekes.txt" fileba, a Digisek egy
"digi.txt" fileba, az orangeosok egy "orange.txt" fileba, s a vodafone
osok egy "vodafone.txt" fileba.
Beküldési határidő
2019 október 28, 23:59, az ezután küldött házik 4 esek lesznek, ha
tökéletesek, 1 ha nem.
A házi elnevezése: H04_Pelda_Bela.cpp, Pelda Bela helyett az
aktuális vezeték és keresztnévvel.
Ne legyenek benne ékezetek, üres helyek, vagy egyéb írásjelek,
stb.!
Azoknál a háziknál, amelyek kísértetiesen hasonlítanak (másolás,
ugyanonnan inspirálódtak, stb,)
mindkettőnek 1 es jár.
Így kell
átnevezni
Megoldott feladatok:
1. Hozzunk létre egy NxN es mátrixot stringekből, s töltsük fel
véletlenszerűen. A főátlón levő elemeket tegyük egyenlővé 0 val, a
főátló fölött levő elemek első betűjét változtassuk át nagybetűvé, az
összes többi legyen kisbetű, a főátló alatt levőknek pedig csak az
utolsó betűje legyen nagybetű. A végső mátrixot írjuk ki a képernyőre!
#include <iostream>
#include <fstream>
#include <string>
#include <stdlib.h>
using namespace std;
int main()
{
//szukseges valtozok deklaralasa
int k,i,j,y,n;
string a[100][100];
//rand fuddveny inicializalasa
srand(0);
cout<<"n=";
//n beolvasasa
cin>>n;
//vegigmegyunk a matrixon
for(i=0; i<n; i++)
{
for(j=0; j<n; j++)
{
//kezdetben ures stringek lesznek az elemek
a[i][j]="";
//a hosszokat is veletlenszeruen valasszuk 3 es 8 kozott
int hossz = 3+rand()%5;
//annyiszor generalunk egy veletlenszamot 97 es 122 kozott, amennyi a hossz
for(y=0; y<hossz; y++){
//veletlenszam generalasa 97 es 122 kozott
k=97+rand()%26;
//hozzaadjuk az a[i][j] hez az uj erteket, ez mindig egy kisbetu lesz a-z kozott (lasd ASCII kodok)
a[i][j]+=k;
}
}
}
for(i=0; i<n; i++)
for(j=0; j<n; j++){
string elem = a[i][j];
//kiszamoljuk a tomb utolso elemet
int hossz = elem.length()-1;
//a foatlon levo elemek 0 k lesznek
if(i==j){
a[i][j]="0";
}
//a folotte levoek elso betuje nagybetu lesz
if(i<j){
a[i][j][0]=toupper(a[i][j][0]);
}
//az alatta levok utolso betuje lesz nagybetu
if(i>j){
a[i][j][hossz]=toupper(a[i][j][hossz]);
}
}
//kiiras
for(i=0; i<n; i++){
for(j=0; j<n; j++){
cout<<a[i][j] << " ";
}
cout<<endl;
}
return 0;
}
2. Olvassunk be egy "input.txt" fileból egy NxM es mátrixot, s írjuk ki egy "output.txt" fileba egy másik mátrixot, ami 0 és 1 esekből áll, a következő logika alapján. Ha a mátrix i, j eleme tartalmazza az "as" stringet, akkor 1 et, ha nem, 0 t.
#include <iostream>
#include <fstream>
#include <sstream>
using namespace std;
int main()
{
//a szukseges valtozok deklaralasa
int i=0, j=0, n, m;
int b[10][10];
string a[10][10];
//input file deklaralasa
fstream infile("input.txt");
string line, token;
//ha sikerult megnyitni a filet, olvasd be a matrixot
if(infile.is_open()){
//amig vannak sorok, olvasd be
while(getline(infile,line)){
//darabold fel a sort
istringstream iss(line);
j=0;
//egyenkent olvasd be az elemeket
while(iss>>token){
a[i][j]=token;
j++;
}
i++;
}
}
//lementjuk az n es m erteket i es j bol
n=i;
m=j;
string keresd;
//beolvassuk a stringet amit keresni fogunk
cout<<"mit keresunk:";
cin>>keresd;
for(i=0; i<n; i++)
{
for(j=0; j<m; j++){
//ha a string megvan a tombben, akkor irj 1 t, ha nem, akkor 0 t
size_t talalat=a[i][j].find(keresd);
if(talalat!=string::npos)
b[i][j]=1;
else
b[i][j]=0;
}
}
//output file letrehozasa
ofstream output("output.txt");
//kiiras az output fileba
for(i=0; i<n; i++){
for(j=0; j<m; j++)
output<<b[i][j]<<" ";
output<<endl;
}
return 0;
}