• 20-03-2019, 21:25:28
    #1
    Merhaba yarın ihtiyaç duyduğum algoritma sorusu var. Fakat yapamadım yardımcı olur musunuz? Algoritma örneklerini genelde çözüyorum fakat bu nedense beni zorladı. Yardımlarınızı bekliyorum.

    Bir program bir metin dosyasından her seferinde tek satır okuyor. Okunan satır bellekte saklanıyor. Okunan satır sayısı 51 olduğunda okunan 50 satır, okudunduğu sıra ile ekrana yazdırılmaktadır. Yazdırma işlemi sona erince okuma işlemine geri dönmekte ve 51, 52, 53... satırlar okunmaya başlanmaktadır. Progaram yeniden bir 50 satır okuyup yine okuduğu bu elli satıra aynı sıra ile ekrana yazdırıyor. Bu programın algoritması..
  • 20-03-2019, 21:38:28
    #2
    her okunanı diziye at sonra diziyi yazdır her 50 de bir bu işlemi yap
  • 20-03-2019, 22:02:32
    #3
    TheAvenqer adlı üyeden alıntı: mesajı görüntüle
    her okunanı diziye at sonra diziyi yazdır her 50 de bir bu işlemi yap
    hocam bunu algoritma şeklinde yani
    1-başla
    2- tanımla
    3
    4
    .
    .
    .
    şeklinde nasıl yazabilirim? Bellekte tutma olayı kafamı karıştırdı, ve satırların hepsini tek tek kaybetmeden nasıl tutabilirim
  • 20-03-2019, 22:56:33
    #4
    karakaya26 adlı üyeden alıntı: mesajı görüntüle
    hocam bunu algoritma şeklinde yani
    1-başla
    2- tanımla
    3
    4
    .
    .
    .
    şeklinde nasıl yazabilirim? Bellekte tutma olayı kafamı karıştırdı, ve satırların hepsini tek tek kaybetmeden nasıl tutabilirim
    Hangi dilde yapmaya çalışıyorsunuz?
  • 20-03-2019, 22:58:27
    #5
    pr1d3 adlı üyeden alıntı: mesajı görüntüle
    Hangi dilde yapmaya çalışıyorsunuz?
    c++
  • 20-03-2019, 23:03:55
    #6
    karakaya26 adlı üyeden alıntı: mesajı görüntüle
    c++
    #include <iostream>
    #include <fstream>
    #include <vector>
    
    using namespace std;
    
    int main()
    {
    ifstream file;
    file.open("input.txt");
    
    if (!file)
    {
    cout << "input acilamadi!" << endl;
    return 1;
    }
    
    string inData;
    vector <string> dizi;
    
    /* belleğe alınan veriler temizlenmesin istersen
    int l = 1;
    do
    {
    getline(file, inData);
    dizi.push_back(inData);
    if (dizi.size() == 50 * l)
    {
    for (int i = (l == 1 ? 0 : 50 * (l-1)); i < dizi.size(); i++) {
    cout << dizi.at(i) << endl;
    }
    ++l;
    }
    } while (file);
    */
    
    do
    {
    getline(file, inData);
    dizi.push_back(inData);
    if (dizi.size() == 50)
    {
    for (auto satir : dizi)
    cout << satir << endl;
    dizi.clear();
    }
    } while (file);
    
    file.close();
    cin.ignore();
    return 0;
    }