Kezdőoldal » Számítástechnika » Programozás » Szép napot az Uraknak! A...

Szép napot az Uraknak! A problémám az lenne, hogy van egy program amit át kellene írnom C#-ról C++ba. Erőteljesen kezdő vagyok, hogy kezdjek neki, mit tegyek?

Figyelt kérdés

Ez lenne a program :


using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.IO;

using System.Text.RegularExpressions;


namespace zene

{

class Szám

{

public int Csat { get; set; }

public int Minute { get; set; }

public int Sec { get; set; }

public string Azon { get; set; }

public Szám(string a)

{

string[] adat = new string[4];

char[] sep = { ' ' };

adat = a.Split(sep, 4);

Csat = Convert.ToInt32(adat[0]);

Minute = Convert.ToInt32(adat[1]);

Sec = Convert.ToInt32(adat[2]);

Azon = adat[3];

}

public long Kezd { get; set; }

}

class Program

{


static void Main(string[] args)

{

List<Szám>[] csatorna = new List<Szám>[3];

for (int i = 0; i < 3; i++)

{

csatorna = new List<Szám>();

}

#region 1. feladat - beolvasás

StreamReader be = new StreamReader("musor.txt");

int n = Convert.ToInt32(be.ReadLine());

for (int i = 0; i < n; i++)

{

Szám sz = new Szám(be.ReadLine());

csatorna[sz.Csat - 1].Add(sz);


}

be.Close();

for (int i = 0; i < 3; i++)

{

long eltelt = 0;

foreach (Szám sz in csatorna)

{

sz.Kezd = eltelt;

eltelt += sz.Minute * 60 + sz.Sec;

}

}

#endregion

#region 2. feladat - zeneszámok száma csatornánként

Console.WriteLine("2. feladat");

for (int i = 0; i < 3; i++)

{

Console.WriteLine("A(z) {0}.i csatornán {1} számot játszottak", i + 1, csatorna.Count());

}

#endregion

#region 3. feladat - E. Clampton időköz

Console.WriteLine("3. feladat");

Szám első = csatorna[0].Find(e => e.Azon.Contains("Eric Clapton:"));

Szám utolsó = csatorna[0].FindLast(e => e.Azon.Contains("Eric Clapton:"));

#region ez a megoldás nem tetszik, bár ötlet van benne

//Console.WriteLine(első.Azon);

//Console.WriteLine(utolsó.Azon);

//int hely = 0;

//Int64 idő = utolsó.Minute * 60 + utolsó.Sec;

//foreach (Szám sz in csatorna[0])

//{

// if (sz == első || sz== utolsó)

// {

// hely++;

// }

// if (hely == 1)

// {

// idő += sz.Minute * 60 + sz.Sec;

// }

//}

#endregion

Int64 idő = utolsó.Kezd + utolsó.Minute * 60 + utolsó.Sec - első.Kezd;

//int ó = (int)idő / 3600;

//int p = (int)(idő - ó * 3600) / 60;

//int m = (int)idő - ó * 3600 - p * 60;

DateTime ideje = new DateTime(idő*10000000);

Console.WriteLine("Az eltelt idő {0}", ideje.ToString("T"));

#endregion;

#region 4. feladat - ;

Console.WriteLine("4. feladat");

Szám omega = null;

int j = 0;

while ((omega == null) && (j<3))

{

omega = csatorna[j].Find(e => e.Azon.CompareTo("Omega:Legenda") == 0);

j++;

}

Console.WriteLine(omega.Kezd);

ideje = new DateTime(omega.Kezd*10000000);

Console.WriteLine("Az Omega száma a(z) {0}. csatornán szólt, kezdete {1}", omega.Csat, ideje.ToString("T"));

j--;

for (int i = 0; i < 3; i++)

{

if (i != j)

{

utolsó = csatorna.FindLast(e => e.Kezd < omega.Kezd);

Console.WriteLine("Ezalatt a(z) {0} csatornán {1} volt hallható", i+1, utolsó.Azon);

}

}

#endregion;

#region 5. feladat - Minta keresés RegEx

Console.WriteLine("5. feladat");

Console.Write("Adja meg a keresett karaktereket: ");

string sms = Console.ReadLine();

StreamWriter ki = new StreamWriter("keres.txt");

ki.WriteLine(sms);

string minta = ".*";

for (int i = 0; i < sms.Length; i++)

{

minta = minta + Convert.ToString(sms).ToLower()+ ".*";

}

Regex mint = new Regex(minta);

for (int i = 0; i < 3; i++)

{

foreach (Szám sz in csatorna)

{

if (mint.IsMatch(sz.Azon.ToLower()))

{

ki.WriteLine(sz.Azon);

Console.WriteLine(sz.Azon);

}

}

}


ki.Close();

#endregion

#region 6. feladat - dumapercek

Console.WriteLine("6. feladat");

long ujido = 180;

int hely = 3420;

foreach (Szám sz in csatorna[0])

{

if (hely < (sz.Minute*60+sz.Sec +60))

{

ujido += hely + 180;

hely = 3420;

}

ujido += sz.Minute * 60 + sz.Sec + 60;

hely -= sz.Minute * 60 + sz.Sec + 60;

}

ideje = new DateTime(ujido * 10000000);

Console.WriteLine("A műsor új ideje: {0}", ideje.ToString("T"));

#endregion

Console.ReadLine();

}

}

}



2013. ápr. 7. 00:54
 1/8 anonim ***** válasza:
0%
a kettő nem ugyanaz? Amúgy nem tudok c++ul sem, de konkrétan értem a kódot... Http://www.google.com
2013. ápr. 7. 06:48
Hasznos számodra ez a válasz?
 2/8 anonim ***** válasza:
Kérdező, érted te ezt a kódot? Van valamennyi c++ tapasztalatod? Mert ha ez a kettő stimmel, akkor tegyél fel konkrét kérdést.
2013. ápr. 7. 11:31
Hasznos számodra ez a válasz?
 3/8 anonim ***** válasza:

Na most ha teljesen kezdő vagy, akkor talán kissé nagy falat ez. Nyilván legalább a c++-t kellene ismerni olyan szinten, hogy a szükséges parancsokat tudd, hogy kell használni.

Ha meg ez van, akkor túl sok gondod nem lehet.

Szóval a kérdésedre, hogy hogyan kezdj neki és mit tégy a válasz: Az elejétől, soronként, és írd át c++-ra.

2013. ápr. 7. 11:35
Hasznos számodra ez a válasz?
 4/8 A kérdező kommentje:
Szóval a c# és a c++ nagyon hasonló, de nem ugyanaz. A helyzet, hogy a beadandót kell készítenem és magamtól a feladat első részét sem tudnám teljesíteni, de neten csak a c# verzió van fent, nekem pedig c++ban kell beadnom. Prog1ből átmentem 3assal, de sok alap tudásom nincs, programkeretet tudok írni meg néhány ciklus (for, if ilyesmik) nagyjából mennek de ez az átírás nagyon nem az én műfajom, ezért kértem a segítségeteket! Én azt értem, hogy sorról sorra kell átírni de nincs valami linketek ami megsegítené a munkámat? (lehetőleg magyarul, de az sem nagy gond ha angolul)Egy tutorial vagy bármi help amiben leírják hogy mit hogy kell átírni hogy ez c++ legyen? Találtam programokat, amik átírják de sokra nem mentem vele. Visual Studio 2010ben dolgozom, ha ezzel közelebb vagyunk. Előre is köszi!
2013. ápr. 7. 12:26
 5/8 anonim ***** válasza:

Olyan leírás biztos nincs, hogy hogyan írjunk át programot C#ból C++ba.

De ha ez sulis project, akkor nyisd ki a sulis jegyzeteket és kezdj el programozni nulláról.

Pár alap példaprogramot megírsz mindenféle dologra, megérted és máris magadtól össze tudod rakni magadtól az egész programot.

Ha ez nem jó, akkor 5000 ért megírom neked holnapra.

2013. ápr. 7. 12:46
Hasznos számodra ez a válasz?
 6/8 A kérdező kommentje:
Köszönöm, nem élnék a lehetőségeddel! De azért lehet megfogadom a tanácsod és elkezdem az elejéről!
2013. ápr. 7. 12:52
 7/8 anonim ***** válasza:

Az if az szerintem szelekció, nem ciklus...


Nagyon egyszerű, szerintem.

Ha ismered a nyelvet, le tudod írni, mit is csinál ez a program.

Utána az adott nyelv szabályai szerint újra kell alkotni.

2013. ápr. 7. 16:11
Hasznos számodra ez a válasz?
 8/8 anonim ***** válasza:

Átírtam már néhány programot, igaz, nem C++-ba, hanem Adába, meg Javából C#-ba.


Először is kommentezd ki a tetején a Using-okat!

Utána cseréld le a Console.WriteLine-okat és a Console.Write-okat cout<<-ra! Kersed meg a Console.ReadLine() megfelelőjét, és helyettesítsd be!

A foreach-et írd át egyszerű for-rá!

Ez eddig a könnyebb rész.

Nézd meg, hogy intézi a konverziókat a C++, és ennek megfelelően javítsd át! A listák helyett használj vektort!

A legnehezebb az adatstruktúrák helyettesítése. Vagy megírod azokat az az osztályokat, amelyeket a C++ fordító hiányol, vagy behozod őket fejfájlokból. A vektorhoz is be kell hozni az stl-t.

Ezután már csak át kell javítani.

2013. ápr. 7. 22:34
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!