ObrniNiz
Dana je tekstovna datoteka. Izpiši jo tako, da bodo vrstice zapisane v obratnem vrstnem redu.
Rešitev (C#)
class Program {
public static void ObrniNiz(string vhodna) {
if (File.Exists(vhodna)) { // preverimo, če datoteka obstaja
string besedilo;
string novoBesedilo;
// branje vhodne datoteke
StreamReader bralniTok; // ustvarimo podatkovni tok za branje
bralniTok = File.OpenText(vhodna); // ga povežemo z datoteko
besedilo = bralniTok.ReadLine(); // preberemo prvo vrstico datoteke
while (besedilo != null) { // po vrsticah gremo do konca datoteke
novoBesedilo = ""; // vsakič izpraznemo spremenljivko
for (int i = 0; i < besedilo.Length; i++) { // obrnemo vrstico
novoBesedilo = besedilo[i] + novoBesedilo;
}
Console.WriteLine(novoBesedilo); // izpišemo obrnjeno
besedilo = bralniTok.ReadLine(); // preberemo naslednjo vrstico
}
bralniTok.Close(); // zapremo podatkovni tok
} else {
Console.WriteLine("Datoteka \"" + vhodna + "\" ne obstaja!");
}
}
// iz glavnega programa kličemo metodo
public static void Main(string[] args) {
ObrniNiz("misel.txt");
Console.WriteLine();
Console.Write("Za konec pritisni karkoli... ");
Console.ReadKey(true);
}
}
Rešitev (C#)
class ObrniVrstice
{
// Rekurzivna metoda vrne obrnjen vhodni niz
public static string ObrniNiz(string vhNiz) {
// Ustavitveni pogoj
if (vhNiz.Length <= 1) {
return vhNiz;
}
// Iz vhodnega niza vzamemo prvi znak
char prviZnak = vhNiz[0];
// Iz vhodnega niza vzamemo drugi znak
char zadnjiZnak = vhNiz[vhNiz.Length - 1];
// Ostali niz brez prvega in zadnjega znaka
string ostaliNiz = vhNiz.Substring(1, vhNiz.Length - 2);
// Zamenjamo prvi in zadnji znak
return "" + zadnjiZnak + ObrniNiz(ostaliNiz) + prviZnak;
}
public static void Main(string[] args) {
// Izpišemo sporočilo uporabniku
Console.Write("Vnesite ime datoteke : ");
// Preberemo ime datoteke od uporabnika
String imeDat = Console.ReadLine();
// Dokler ni vnešeno pravo ime datoteke (datoteka obstaja) ne obdelujemo
while (!File.Exists(imeDat)) {
Console.Write("Vnesite ime datoteke : ");
imeDat = Console.ReadLine();
}
// Odpremo podatkovni tok
StreamReader datBeri = File.OpenText(imeDat);
string vrstica;
// Preberemo datoteko, obračamo vrstice in izpisujemo na zaslon
while ((vrstica = datBeri.ReadLine()) != null) {
vrstica = ObrniNiz(vrstica);
Console.WriteLine(vrstica);
}
// Zapremo podatkovni tok
datBeri.Close();
// Na koncu počakamo na vnos, da lahko preberemo rezultate
Console.Write("Pritisni tipko za nadaljevanje . . . ");
Console.ReadKey(true);
}
}