Hej, napisałem prosty program dokonujący kombinacji na literach ,po prostu wpisze wszystkie możliwe ich ułożenia dzięki czemu powstaną też sensowne wyrazy . Program jest bardzo ograniczony i wypisuje tylko 4 literowe wyrazy z użyciem wielkich liter. Oczywiście potrafię to rozwinąć o większe możliwości ale zanim to zrobię muszę zadbać nieco o kod :) Oto on:
#include "stdafx.h" //Napisane w VS
using namespace std;
const int n = 25;
int main()
{
char numbers[n]; //jakas tablica liter (tylko te duze dla uproszczenia)
for (int i = 0; i < n; i++) //nadawanie im wartosci z tablicy asci
numbers[i] = i + 65;
for (int i = 0; i < n; i++) //wypisujemy po cztery litery (dla wiekszej ilosci to by byla zmora)
for (int j = 0; j < n; j++)
for (int k = 0; k < n; k++)
for (int e = 0; e < n; e++) {
cout << numbers[i] << " " << numbers[j] << " " << numbers[k] << " " << numbers[e] << endl; //wypisywanie danej kombinacji
if (numbers[i] == 'J' &&numbers[j] == 'U' &&numbers[k] == 'D' &&numbers[e] == 'A') { //dla eksperymentu zatrzymaj sie kidy znajdziez taki wyraz
_getch();
}
}
return 0;
}
Problem jest głównie w zagnieżdżonych w sobie pętlach (tyle ile ich jest tyle jest liter w wyrazie) . Oczywiście teraz wyraz jest tylko 4 literowy ale np dla "losowania" całych zdań (tak też zamierzam zrobić) bedzie trzeba użyć przykładowo 20 pętli ,to trochę mało fajne i czytelne :/ . Czy można to jakoś ominąć ,albo może inaczej: Czytelnie ułóżyć ten kod, użyć innego algorytmu ,jak tak to jakiego? . Z góry dziękuje za pomoc i pozdrawiam :)