ערכתי לאחרונה בתאריך 16.11.12 בשעה 14:28 בברכה, LaVy
באופציה זו בתפריט תבקש התכנית 2 מספרים שטווחם ינוע בין 7 ל 20 ( כולל קצות הטווח ), המספרים יהוו אורך ורוחב של מלבן שיודפס על המסך. בהינתן 2 המספרים הללו תיצור התכנית מלבן עם 2 שכבות. השכבה החיצונית תהיה מורכבת מהאות O ( o גדולה ), והשכבה האמצעית תהיה מורכת מריבועים בגודל 3*3 שנתייחס אליהם כאל מטריצה. האלכסון הראשי של המטריצה יורכב מהתו '\' , החלק מעל לאלכסון במטריצה יורכב מ התו '+' והחלק התחתון יורכב מהתו '-' . החוקיות להדפסה היא : על 2 השכבות למלא את כל המלבן, לשכבה החיצונית יהיה לפחות עובי של 1 גם לגובה וגם לאורך, על המלבן להכיל מקסימום ריבועים פנימיים ועל השכבה החיצונית להיות סימטרית לצירים x ו - y כאשר מספר המטריצות בכל מימד יכול להיות זוגי או איזוגי בהתאם לדרישות ( בסוף המלבן תופיע שורת רווח ).
לדוגמא עבור מלבנים בגדלים 10*12 , 8*9 , 7*20 יוצג הפלט הבא :
משום מה לא הולך לי בכלל.. לא מצליח להגיע לאלגוריתם מתאים.
מה שעשיתי עד כה (וזה לא טוב) זה:
int main(){
int h,w,t,j=0,t1,z=0,q,x,y=0,g=0;
do{
printf("Please enter the square height, range 7-20\n");
scanf("%d",&h); /* h = height */
}while(h<7 || h>20); //checking input//
do{
printf("Please enter the square width, range 7-20\n");
scanf("%d",&w); /* w = width */
}while(w<7 || w>20); //checking input//
if(w%3==0){
do{
printf("OOO");
for(q=3;q<(w-5);q=q+3){
printf("\\++");
}
printf("OOO\n");
z++;
printf("OOO");
for(q=3;q<(w-5);q=q+3){
printf("-\\+");
}
printf("OOO\n");
z++;
printf("OOO");
for(q=3;q<(w-5);q=q+3){
printf("--\\");
}
printf("OOO\n");
z++;
}while(z<(h-6));
}
else if((w+2)%3==0){
do{
printf("OO");
for(q=2;q<(w-5);q=q+3){
printf("\\++");
}
printf("OO\n");
z++;
printf("OO");
for(q=2;q<(w-5);q=q+3){
printf("-\\+");
}
printf("OO\n");
z++;
printf("OO");
for(q=2;q<(w-5);q=q+3){
printf("--\\");
}
printf("OO\n");
z++;
}while(z<(h-4));
}
else{
do{
printf("O");
for(q=1;q<(w-5);q=q+3){
printf("\\++");
}
printf("O\n");
z++;
printf("O");
for(q=1;q<(w-5);q=q+3){
printf("-\\+");
}
printf("O\n");
z++;
printf("O");
for(q=1;q<(w-5);q=q+3){
printf("--\\");
}
printf("O\n");
z++;
}while(z<(h-2));
}
}
למישהו יש כיוון בבקשה בשבילי?
תודה רבה ומצטער על הבורות (ממש מתחיל בתכנות)
