Diskuze: Problem s výpočtom Sin a vytvorenie poľa

C# .NET .NET (C# a Visual Basic) Problem s výpočtom Sin a vytvorenie poľa American English version English version

Avatar
loobka
Člen
Avatar
loobka:

Tu je zdroj na výpočet Sin a vytvorenie poľa nevpiše mi nič. Prosímm kde je chyba?:
double [] x, y;
double h = 0.05;
int n = (int)(1.4 / h);
//double h = 0.1;
//int n = (int)(2 * 3.14 / h);
x = new double[n];
y = new double[n];
for (int i = 1; i < n; i++)
{
x[i]= x[i-1]+ h;
y[i]= Math.Sin(x[i]);

}

Console.Write­Line("Vypis pole x {0}", x, y);
Console.ReadLine();

 
Odpovědět 7.1.2015 22:51
Avatar
Jan Vargovský
Redaktor
Avatar
Odpovídá na loobka
Jan Vargovský:
for (int i = 0; i < n; i++)
Console.WriteLine("[{0},{1}]", x[i], y[i]);

Nevím co přesně chceš, aby se ti to vypsalo. Ale pole nemá přepsanou metodu ToString, takže ti to vypíše jen v jakém je namespacu (předpokládám, že tohle je ta chyba, že to "nic" nevypíše). Navíc tam předáváš dva parametry a používáš jen jeden.

Editováno 7.1.2015 23:07
 
Nahoru Odpovědět 7.1.2015 23:07
Avatar
rwn
Člen
Avatar
Odpovídá na loobka
rwn:

Pole se takhle nevypisuje, je to kolekce hodnot. Vypsat to můžeš buď takto:

for (int i = 0; i < x.Length; i++)
    Console.Write("{0} ", x[i]);

a nebo takto:

foreach (double i in x)
    Console.Write("{0} ", i);
Editováno 7.1.2015 23:12
Nahoru Odpovědět 7.1.2015 23:11
Co můžeš naprogramovat dnes, neodkládej na zítřek.
Avatar
loobka
Člen
Avatar
Odpovídá na Jan Vargovský
loobka:

Vypisuje mi túto chybu:
Error 2 The name 'i' does not exist in the current context

 
Nahoru Odpovědět 7.1.2015 23:13
Avatar
Jan Vargovský
Redaktor
Avatar
Odpovídá na loobka
Jan Vargovský:

Hoď sem celý program od prvního znaku až po poslední.

 
Nahoru Odpovědět 7.1.2015 23:15
Avatar
loobka
Člen
Avatar
 
Nahoru Odpovědět 7.1.2015 23:15
Avatar
loobka
Člen
Avatar
Odpovídá na Jan Vargovský
loobka:

using System;
using System.Collec­tions.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
double[] x;
double []y;
double h = 0.05;
int n = (int)(1.4 / h);
//int n = (int)(2*3.14 /h);
x = new double[n];
y = new double[n];
for (int i = 0; i < n; i++)
{
x[i] = x[i - 1] + h;
y[i] = Math.Sin(x[i]);
}

Console.Write­Line("[{0},{1}­]", x[i], y[i]);
Console.ReadLine();
}
}
}

 
Nahoru Odpovědět 7.1.2015 23:16
Avatar
Jan Vargovský
Redaktor
Avatar
Odpovídá na loobka
Jan Vargovský:

Já ti dal funkční konstrukci, která vypíše ty pole. Jenže tys to očividně dal do nějakého kontextu, kde ti to píše chybu. Proto jsem ti napsal, ať mi pošleš celý zdroják.

EDIT: Ten for cyklus k tomu taky potřebuješ...
EDIT2: Pro zdrojáky tu je přímo tag. Najdeš ho mezi těmi tlačítky nad textem zprávy.

Editováno 7.1.2015 23:18
 
Nahoru Odpovědět 7.1.2015 23:17
Avatar
loobka
Člen
Avatar
Odpovídá na loobka
loobka:

pole x ma vypisať 17 udajov a pole y[i]= Sin(x[i])

 
Nahoru Odpovědět 7.1.2015 23:20
Avatar
Jan Vargovský
Redaktor
Avatar
Odpovídá na loobka
Jan Vargovský:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
double[] x;
double []y;
double h = 0.05;
int n = (int)(1.4 / h);
//int n = (int)(2*3.14 /h);
x = new double[n];
y = new double[n];
for (int i = 0; i < n; i++)
{
x[i] = x[i - 1] + h;
y[i] = Math.Sin(x[i]);
}

for (int i = 0; i < n; i++)
 Console.WriteLine("pole {0}= Sin({1})", y[i], x[i]);
Console.ReadLine();
}
}
}
 
Nahoru Odpovědět 7.1.2015 23:22
Avatar
loobka
Člen
Avatar
Odpovídá na Jan Vargovský
loobka:

Dakujem ale nic mi to nevypisuje. Tam maju byt take udaje 0, 0.05......1.35

 
Nahoru Odpovědět 7.1.2015 23:30
Avatar
Jan Vargovský
Redaktor
Avatar
Odpovídá na loobka
Jan Vargovský:
for (int i = 0; i < n; i++)

=>

for (int i = 1; i < n; i++)

Nečekal jsem, že tam přidáš můj cyklus mimo tvého. Vše co stačilo dát ten můj kód někde na konec toho tvého.

Editováno 7.1.2015 23:35
 
Nahoru Odpovědět 7.1.2015 23:34
Avatar
loobka
Člen
Avatar
Odpovídá na Jan Vargovský
loobka:

Diky, uz to je v poriadku. Jakyyy si ty dobryyy :)

 
Nahoru Odpovědět 8.1.2015 0:27
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 13 zpráv z 13.