Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.05.2010, 15:45   #1
Anett//
 
Регистрация: 24.12.2009
Сообщений: 8
Восклицание Ряды Фибоначчи

Ребята помогите пожалуйста!!!! СРОЧНО!!! Написала программку, но вот не пойму, где ошибка, в вожу n=10, а в форме пишет 20 цифр, и повторяет.. Выложу всю программку, чтобы было понятно!!! Заранее большое спасибо!!

namespace Ряд_Фибоначчи
{
public partial class Form1 : Form
{

public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
}
public string t;
int n;

public bool Err()
{
bool error = false;
int tmp1, tmp2, tmp3;
try
{
tmp1 = Convert.ToInt32(textBox1.Text);
tmp2 = Convert.ToInt32(textBox3.Text);
tmp3 = Convert.ToInt32(textBox4.Text);
}
catch (System.ArgumentNullException)
{
MessageBox.Show("Не введено число", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
error = true;
}
catch (System.FormatException)
{
MessageBox.Show("Произошла ошибка. Причиной может быть не правильно введенное число в поле", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
error = true;
}
catch (System.OverflowException)
{
MessageBox.Show("Переполнение. Введите число поменьше", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
error = true;
}
if (!error)
{
tmp1 = Convert.ToInt32(textBox1.Text);
tmp2 = Convert.ToInt32(textBox3.Text);
tmp3 = Convert.ToInt32(textBox4.Text);
if (tmp1 > 200)
{
MessageBox.Show("N должно быть не больше 200. Присваеваем 200");
textBox1.Text = "200";
}
if (tmp2 > 20)
{
MessageBox.Show("P должно быть не больше 20. Присваеваем 20");
textBox3.Text = "20";
}
if (tmp3 > 30)
{
MessageBox.Show("Размер матрицы должен быть не больше 30. Присваеваем 30");
textBox4.Text = "30";
}
return false;
}
else return true;
}

private void button1_Click_1(object sender, EventArgs e)

{

int fib = 1, fib1 = 1, fib2 = 2;// вводим пременные

textBox2.Text = "";
textBox2.Text += fib.ToString() + " ";
textBox2.Text += fib1.ToString() + " ";
textBox2.Text += fib2.ToString() + " ";
for (int i = 1; i < n - 2; i++)
{
fib = fib2;
fib2 = fib1 + fib2;
fib1 = fib;
textBox2.Text += fib2.ToString() + " ";
}
}

private void button2_Click(object sender, EventArgs e)
{
if (!Err())
{

int n = Convert.ToInt32(textBox1.Text);
int p = Convert.ToInt32(textBox3.Text);
if (n <= p + 1)
{

textBox1.Text = textBox3.Text = "";
MessageBox.Show("Попробуй прочитать условие внимательнее и введи параметры снова!");
}
else
{
int[] a = new int[n];
//t = " ";
int i = 0;
for (; i <= p; i++)
a[i] = 1;
for (; i < n; i++)
{
a[i] = a[i - 1] + a[i - 1 - p];
}

for (i = 0; i < n; i++)
textBox2.Text += a[i].ToString() + " ";


int k = 0;
k = Convert.ToInt32(textBox3.Text);
for (; i <= p; i++)
a[i] = -1;
for (; i < n; i++)
{
a[i] = a[i - 1] + a[i - 1 - p];
}

for (i = 0; i < n; i++)
textBox2.Text += a[i].ToString() + " ";
}
}
}
Anett// вне форума Ответить с цитированием
Старый 21.05.2010, 19:49   #2
Z1000000
Форумчанин
 
Регистрация: 04.05.2010
Сообщений: 495
По умолчанию

Что должна делать эта программа? Условия задачи скажи.
Что такое N,P ?
И на чем это написано. Среда какая?
Нажми на весы, поставь +
Для благодарностей : WebMoney WMR R252732729948
Z1000000 вне форума Ответить с цитированием
Старый 21.05.2010, 20:05   #3
Anett//
 
Регистрация: 24.12.2009
Сообщений: 8
По умолчанию

Цитата:
Сообщение от Z1000000 Посмотреть сообщение
Что должна делать эта программа? Условия задачи скажи.
Что такое N,P ?
И на чем это написано. Среда какая?

написана в С# , n-числовая последовательность(0,1,1,2,3,5,8,13 ,21 и т.д.) тоесть сумма двух предыдущих цифр, мы задаем какое кол-во чисел будет выведено, р-обобщенное число фибоначчи задается формулой F(n)=(n-1)+(n-1-p)..
я эту программку создала в Form и все последовательности должны выводиться в textBox, я ввожу например n=10, выводятся вся последовательность, но проблема в том что за место 10 чисел, выводится 20, тоесть повторяется эта же последовательность..Мозгов уже не хватае найти эту ошибку..((
Anett// вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Delphi ряды tanek Помощь студентам 2 27.09.2009 04:38
Ряды в диаграмме maxic Microsoft Office Excel 5 26.05.2009 14:44
Ряды тейлора STS_1991 Помощь студентам 2 12.05.2009 15:52
pascal ряды world12_tk Помощь студентам 1 03.05.2009 11:48