Pokaż wyniki 1 do 9 z 9

Temat: Generowanie znaków w konsoli

Hybrid View

Previous Post Previous Post   Next Post Next Post
  1. #1

    Domyślnie Generowanie znaków w konsoli

    Witam,
    w jaki sposób wygenerować na konsoli wszystkie kombinacje wybranych znaków?
    np. (abcd) a, b, c, d, ab, ac, ad, itd.
    nie chcę tutaj gotowca (chociaż nie będę zły), ale ogólne wskazówki co i jak będzie najprościej zastosować


    Pozdrawiam

  2. Domyślnie

    Wstaw wartości do tablicy, i zastosuj pętle.

    dokumentacja obsługi tablic w bashu
    http://tldp.org/LDP/abs/html/arrays.html

    Jednak koledzy (przyznaję im rację) będą nakłaniali Cię do zastosowania perla, a może nawet C.
    Będzie to na pewno efektywniejsze rozwiązanie, choć nie ma znaczenia, z jakiego środowiska skorzystasz, to i tak będziesz musiał zastosować tablice i pętle.

    Pozdr

  3. #3

    Domyślnie

    wg.pl po co kombinowac jak ma sie to :P

  4. #4

    Domyślnie Re.

    ok, mamy takie coś np.: char znaki[]= {'a', 'b', 'c', 'd', 'e'}; //i tu stoję
    ale jak zrobić pętlę by generowała wszystkie możliwe kombinacje tych znaków?
    Ostatnio edytowane przez grupalokalna : 02-06-2009 - 23:28

  5. #5

    Domyślnie

    Zainspirowałeś mnie i zrobiłem coś takiego w C++, z pozoru temat prosty, ale łatwo się zamotać.
    Program wyświetla kombinacje liter A,B,C,D czyli znaki w ASCII od 65 do 68, ale nic nie stoi na przeszkodzie żeby zakres znaków był większy, wystarczy zmienić przedziały.
    Kombinacje dla 4 znaków zostały wyremowane, gdyż wtedy wszystkich kombinacji znaków jest tyle ,że bufor okienka konsoli jest za mały i obcina początkowe kombinacje, nie widać wtedy zasady działania programu.
    Jak wywalisz znaczki /* */ i skompilujesz to sam zobaczysz.
    Kod:
    #include <iostream>
    #include <stdio.h>
    using namespace std;
    int main ()
    {
    //1znak
    
    for(int litera1= 65;litera1 < 69;++litera1)
              {
    
    cout << (char)litera1 << endl;
              }
    
    //2znaki
    
    for (int litera2=65;litera2 <69;++litera2)
            {
      for(int litera1= 65;litera1 < 69;++litera1)
              {
    cout << (char)litera2;
    cout << (char)litera1 << endl;
              }  
            }
     
    //3znaki
    
      for (int litera3=65;litera3 <69;++litera3)
          {
      for (int litera2=65;litera2 <69;++litera2)
            {
      for(int litera1= 65;litera1 < 69;++litera1)
              {
    cout << (char)litera3;
    cout << (char)litera2;
    cout << (char)litera1 << endl;
              }  
            }
          }
    //4znaki
    /*
    for (int litera4=65;litera4 <69;++litera4)
        {
    for (int litera3=65;litera3 <69;++litera3)
          {
      for (int litera2=65;litera2 <69;++litera2)
            {
      for(int litera1= 65;litera1 < 69;++litera1)
              {
    cout << (char)litera4;
    cout << (char)litera3;
    cout << (char)litera2;
    cout << (char)litera1 << endl;
              }  
            }
          }
        }
    */
    
    
    getchar();
    return 0;
    }
    Program skompilowałem na DevC++ ver. 4.9.9.2
    Miłej zabawy

  6. #6

    Domyślnie

    Zastosuj np. rekurencje i mozesz robic dla dowolnej dlugosci znakow... Ja przynajmniej tak robilem

Podobne wątki

  1. MySQL kodowanie znaków
    By rafal44 in forum Linux
    Odpowiedzi: 0
    Autor: 11-01-2008, 21:28
  2. Odpowiedzi: 1
    Autor: 04-17-2008, 14:55
  3. use CGI - generowanie stron (start_html)???
    By Efraim in forum Perl/Python/TCL/Prolog
    Odpowiedzi: 1
    Autor: 11-14-2007, 20:42
  4. wszukiwanie ciągu znaków
    By ble34 in forum C/C++
    Odpowiedzi: 8
    Autor: 10-20-2007, 19:31
  5. podmiana ciągów znaków w locie
    By strzala in forum Newbie - dla początkujących!
    Odpowiedzi: 2
    Autor: 06-11-2007, 11:16

Zasady Postowania

  • Nie możesz zakładać nowych tematów
  • Nie możesz pisać wiadomości
  • Nie możesz dodawać załączników
  • Nie możesz edytować swoich postów
  •  
Subskrybuj