![]() |
помогите написать программу на C++
Вложений: 2
помогите пожалуйста решить задачку, очень нужно((((((
я понял, что задачу нужно решать как массив, но тут я столкнулся с проблемой, поскольку очень сложна для меня, очень много условий в этой задачке сам размер матрицы (количество строк и столбцов) не задан, но имеет ограничения как по X так и по Y. Но они как-то связаны, к примеру если взять что ∆X = 1 и ∆Y = 1, то кол-во строк = 11, а кол-во столбцов = 9, а может быть и наоборот (они могут и отличаться, к примеру ∆X = 0,01 и ∆Y = 0,01); даже сами значения ∆X и ∆Y могут отличаться друг от друга, но они связаны с границами Xϵ[0;8] и Yϵ[0;10]. а вот и вторая проблема в этой же задаче: • к примеру, как показано на рисунке значение в массиве при X = 0, а Y =10 будет = 0, затем при изменяющемся X и постоянном Y значение будет расти и в точке массива при X = 6, а Y =10 значение будет = 10, а далее будет падать до 0 в точке матрицы X = 8 и Y =10; • также, как видно из рисунка значения в массиве при X = 0, а Y изменяющемся в диапазоне [0;2] будет = 5; • все остальные граничные значения = 0. И третья проблема: это расчет внутренних значений матрицы Если ∆X = ∆Y, то внутренние значения каждой точки матрицы рассчитываются по формуле U[i][j]=(U[i-1][j]+ U[i+1][j]+ U[i][j-1]+ U[i][j+1])/4 Если ∆X ≠ ∆Y, то внутренние значения каждой точки матрицы рассчитываются по формуле U[i][j]=(U[i-1][j]+ U[i+1][j]+ ((∆X²/∆Y²)*(U[i][j-1]+ U[i][j+1])))/(2*(1+(∆X²/∆Y²))) |
feytan, ааа а что спросить то хотел? Условий много, а их цель и смысл не ясны. В чем возникла проблема? Что ты не знаешь "Как сделать?"?
Описав проблему, ты не задал ни одного вопроса, поэтому помочь тебе пока сложно. |
ты бы для начала сам понял что от тебя хотят в этой задаче а не у нас спрашивал.. это не мы тебе задали эту задачу. чесно.
тебе правильно говорят - задай вопрос. он состоит обычно из нескольких частей: 1. условие, т.е. то что имеется, 2. желаемый ответ, т.е. то что предполагается сделать и получить., и 3. фраза - "вот я тут набросал [ссылка_на_наброски], но не пойму как сделать [непонятная_штука]" . |
Я вроде сделал первую часть программы, проверьте правильно ли (у меня запускается, но все равно прошу проверьте, мож я слишком громозко сделал). В ней я взял просто случайные числы для матрицы, поэтому код нужно будет переделать слегка, но как сделать два других пункта я не знаю. Потому и прошу о помощи.
Код:
#include <iostream> |
Вложений: 2
Задачу я решил. Я изменил код программы, взяв за основу, что ∆X = 1 и ∆Y = 1, т.о. кол-во строк = 11, а кол-во столбцов = 9. Вот код программы:
Код:
#include <iostream> |
Вложений: 1
Помогите написать программу.
|
Студенты... ммм я по ним скучал :)
Tanya_93, Выпиши пожалуйста Определения переменных - т.е. имя переменной, ее тип (логическая, вещественная, целая и т.п.) и, если надо, размерность. Формулы вычисления на каждом участке Ответь, как переменной присвоить значение введенное с клавиатуры, как вывести значение на экран. Привели конструкцию цикла for или цикла while. Не связывая эти блоки с собой. Мне просто нужны "кирпичики" - ответы на заданные вопросы, даже если тебе не видна полная картина, ничего страшного, все равно ответь, дальше я покажу, как все это удобно между собой складывается и получается решение задачи. |
#include <stdio.h>
#include <iostream> #include <conio.h> using namespace std; void main() { double a,b,c,x,x1,x2,d; cout<< "vvesti a: \n"; cin>> a; cout <<"vvesti b: \n"; cin>> b; cout <<"vvesti c: \n"; cin>>c; cout <<"vvesti x1: \n"; cin>>x1; cout <<"vvesti x2: \n"; cin>>x2; cout <<"vvesti d: \n"; cin>>d; cout<<" -------------------------- \n"; cout<<"| X |"; cout<<" F |"; for(x=x1;x<x2) { if ((x<0)&&(b!=0)) {printf("\n| %10.1lf ",x); printf("| %10.1lf |",a*x*x*x+b*x*x); } else if ((x>0)&&(b==0)) {printf ("\n| %10.1lf ",x); printf ("| %10.1lf |",(x-a)/(x-c)); } else {printf ("\n| %10.1lf ",x); printf ("| %10.1lf |",(x+5.0)/c*(x-10.0)); } printf("\n -------------------------- "); } getch(); } |
Tanya_93, Первый и самый злой комментарий : "Комментарии !"
Расставляй комментарии к коду, даже к такому простейшему. Цитата:
Цитата:
Цитата:
Ведь в задании, насколько я помню, был указан шаг dX, в существующем варианте шаг будет равен единице. Т.е. тебе либо надо выправлять условия цикла for, либо использовать цикл while. |
да я for подправила,
|
Tanya_93, вот и молодец! Решила задачу, не отвлекая народ по мелочаам.
Последняя наверно придирка - какие были основания для написания тройного условия if ? Можно ли решить заданные уравнения на заданных диапазонах другим способом (в чуть иных конструкциях), какие плюсы и минусы мы от этого получим? Т.е. при составлениии отчета по лабе, обычно требуется вывод, и хорошо бы, что бы в выводе были не просто слова, а обоснованные числа. |
Время: 11:40. |
Время: 11:40.
© OSzone.net 2001-