pattern

Pages: 12
Dec 17, 2012 at 4:15pm
please help me to make program that print this pattern with Arbitrary <n> by just 2 for loop !!!

example : n=4
1 1 1 1 1 1 1
1 2 2 2 2 2 1
1 2 3 3 3 2 1
1 2 3 4 3 2 1
1 2 3 3 3 2 1
1 2 2 2 2 2 1
1 1 1 1 1 1 1

sorry to take your time and sorry for my terrible english

Dec 17, 2012 at 4:18pm
and what excactly is your problem?
Dec 17, 2012 at 4:23pm
I can solve this with compare it to 8 triangle but its need many loops, how i can write that with 2 loop?
Dec 17, 2012 at 4:28pm
1 loop for rows and 1 for columns
you also need if

and please post the code, you have so far
Last edited on Dec 17, 2012 at 4:30pm
Dec 17, 2012 at 4:32pm
this is exactly what my teacher says , and you can imagine my face mood when he says...
Dec 17, 2012 at 4:34pm
i'm not going to solve this for you.
post what you have so far and i can tell you what to change and what your problems are. but i won't just give you the code
Dec 17, 2012 at 4:40pm
closed account (18hRX9L8)
Whenever I program a problem, I always look for patterns.

In this particular problem:

You see that the width of the square is 7 when you enter 4. Therefore, we can come up with the equation 2n-1=width.

Next you see that the width is decreasing by 2s. 7 1s to 5 2s to 3 3s and so on. Therefore, we can come up with the for loop:

for(i=0;i<=width;i++) //Where width is 2n-1

And we can continue this with our other equation, width-2=new width of next number.

for(i=0;i<=width-new;i++) //Where new is =0 and then after every loop, n=n+2

We know the middle of the loop, where n will be placed is with the equation: n=middle because for example, you will have 1s,then 2s, then 3s, then 4s. So 4=4. After this middle, the loop can re-loop the others backward and finish. This is where the tricky part comes in. I am also a noob too ;).

So keep searching for patterns and good luck. I will also program this too for a good practice.

[edit]12.18.12: Almost done completing the code...[/edit]
Last edited on Dec 19, 2012 at 2:50am
Dec 17, 2012 at 4:40pm
i can chang the rows with 1 for loop
also with another i can print for example : 1233 -> this the third row of my example but i cant print numbers after second 3 -> 321 , for doing this i will need another loop
Dec 17, 2012 at 4:51pm
yes you can also do this with 1 loop
Dec 17, 2012 at 4:55pm
all the pattern with 1 loop!!!!
its impossible!
i bet....

you guys give usefull guidances , thank you very much
Dec 19, 2012 at 3:59am
@usandfriends

This is the same code as in your other thread that talked about it being a virus.

And it is full of goto's - which we have already talked about.

And it uses printf, which is poor form for a C++ program.

It is also unnecessarily long IMO.

@Soorena

So I would ignore usandfriends code. Where is your code?
Dec 20, 2012 at 7:42am
//znu 91463131//
#include<iostream>
#include<conio.h>
#include<stdio.h>
using namespace std;
main()
{
for(;;)
{
int n;
printf ("please enter a number lower than 14 : "), scanf ("%d",&n);
int r [2*n-1][2*n-1];
if (n<=13)
{
for (int i=n ; i>=1 ; i--)
{
for (int j=1 ; j<=2*n-1 ; j++)
{
r[j][i]=i,r[i][j]=i,r[j][2*n-i]=i,r[2*n-i][j]=i;
}
}
for (int i=1 ; i<=2*n-1 ; i++)
{
for (int j=1 ; j<=2*n-1 ; j++)
{
printf ("%3d",r[i][j]);
}
printf("\n");
}
}
else printf ("your number is too big","\n");
getch();
}
}

how can i change this to run just with 1 loop??
Dec 20, 2012 at 8:20am
i would rather change it to compile first :P

thats's your code:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#include<iostream>
#include<conio.h>
#include<stdio.h>
using namespace std;
main()
{
	for(;;)
	{
		int n;
		printf ("please enter a number lower than 14 : "), scanf ("%d",&n);
		int r[2*n-1][2*n-1];
		if(n<=13)
		{
			for (int i=n ; i>=1 ; i--)
			{
				for (int j=1 ; j<=2*n-1 ; j++)
				{
					r[j][i]=i,r[i][j]=i,r[j][2*n-i]=i,r[2*n-i][j]=i;
				}
			}
			for (int i=1 ; i<=2*n-1 ; i++)
			{
				for (int j=1 ; j<=2*n-1 ; j++)
				{
					printf ("%3d",r[i][j]);
				}
				printf("\n");
			}
		}
		else printf ("your number is too big","\n");
		getch();
	}
}
Last edited on Dec 20, 2012 at 8:24am
Dec 20, 2012 at 8:26am
line 7: whats that for loop for?

in line 11 you try to set up an array. it's size gets set during runtime via user-input. that's only possible with pointers.
Last edited on Dec 20, 2012 at 8:28am
Dec 20, 2012 at 8:35am
1.in line 7 its an unlimited loop to reload page after getch
2.Im beginner and dont know what is pointer exactly?!
Dec 20, 2012 at 8:38am
just use a vector then, or dont use an array at all. you only need output here anyways
Dec 20, 2012 at 8:43am
thanks to giving your time
i will study around thease
Dec 20, 2012 at 3:15pm
closed account (18hRX9L8)
@ Soorena: Your code compiles but doesn't work. The program glitches out when I enter 13 and when I entered 9, it stopped working completely. I am fixing my code so it wont have gotos and viruses.

@TheIdeasMan: Yeah, caught that didn't you. Don't worry, fixed my libraries, now fixing my code. Will make you proud!
Last edited on Dec 20, 2012 at 3:23pm
Dec 20, 2012 at 3:17pm
thats not my code, that is soorenas.
it also says "that's your code" in my post :P
i just edited it a little and used codetags, to improve readability
Last edited on Dec 20, 2012 at 3:19pm
Dec 20, 2012 at 3:32pm
usandfriends : My code are tested with all 13 input;and i dont see any problem!!
my compiler cant compile your libraries in code that you written before!
Last edited on Dec 20, 2012 at 3:32pm
Pages: 12