Pomoc w zrozumieniu zadania

0

Witam
Mam problem z zadaniem ponieważ nie wiem co program na wyświetlać na ekranie konsoli.
Oto treść zadania:
Przeanalizuj przykład programu, który znajduje całkowite rozwiązania układu nierówności o dwóch zmiennych x,y:(x-13)​2​+(y-10)​2​ <= 64y<1.15 * x;
W programie zastosowano globalną definicję zmiennej tablicowej (tablica dwuwymiarowa). Tablica odwzorowuje fragment dyskretnej płaszczyzny ​x,y​.
W odwzorowywanym fragmencie płaszczyzny leży poszukiwane rozwiązanie, które ma postać zbioru par wartości ​(x,y)​, spełniających jednocześnie obie nierówności. Funkcja ​rozwiazanie_tab() ​sprawdza za pomocą instrukcji warunkowej, czy dla danej pary ​x,y spełnione są obie nierówności jednocześnie. Rozszerz program o funkcję ​pokaz_tab()​, która wyświetla na ekranie komputera rozwiązanie układu nierówności. ​Wyświetlanie elementu tablicy wykonaj za pomocą instrukcji ​printf("%2c",tab[y][x]);

#include "stdafx.h"
#include <conio.h>
#include <stdio.h>
#include <math.h>
const int LW=20, LK=30;
char tab[LW][LK]; 

void pokaz_tab();
void rozwiazanie_tab();

int main()
{
rozwiazanie_tab();
pokaz_tab();
getch();
return 0;
}

void rozwiazanie_tab()
{
int nierownosc1, nierownosc2;
   for (int y=0; y<LW; y++)
          for (int x=0; x<LK;x++)
             {
              nierownosc1=(pow(x-13.0,2.0)+pow(y-10.0,2.0)<=64);
              nierownosc2=(y<1.15*x);
               if(nierownosc1&&nierownosc2) tab[y][x] = '#';
                  else tab[y][x]='+';
            }
}
2

Obstawiam że:

char showPoint[]={' ','@'};
tab[y][x]=showPoint[nierownosc1&&nierownosc2];
1

Tablica ma odwzorowywać fragment płaszczyzny x, y, więc sprawdzanie rozwiązania w pętli ma przepbiegac po wartościach tablicy, a nie indeksach. Inna sprawa, że pasuje też tę tablicę zainicjalizować jakimś fragmentem R^{2}.

1
#include <stdlib.h>
#include <stdio.h>

double sqr(double v) { return v*v; }

int main()
{
	const int YSize=48,XSize=79;
	const double Ymin=1,Ymax=18,Xmin=0,Xmax=1.5*Ymax;
	char showPoint[]={'.','@'};
	char tb[YSize][XSize];
	for(int y=0;y<YSize;++y)
	{
		double Y=Ymax-y*(Ymax-Ymin)/(YSize-1);
		for(int x=0;x<XSize;++x)
		{
			double X=Xmin+x*(Xmax-Xmin)/(XSize-1);
			tb[y][x]=showPoint
			[
				(Y<1.15*X)
				&&
				(sqr(X-13)+sqr(Y-10)<=64)
			];
		}
	}
	for(int y=0;y<YSize;++y,printf("\n")) for(int x=0;x<XSize;++x) printf("%2c",tb[y][x]);
	return 0;
}

https://www.wolframalpha.com/input/?i=%28Y%3C1.15*X%29+%26%26+%28%28X-13%29%5E2%2B%28Y-10%29%5E2%3C%3D64%29

1 użytkowników online, w tym zalogowanych: 0, gości: 1