Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.67
Иринка
0 / 0 / 0
Регистрация: 21.04.2009
Сообщений: 44
#1

Задача на массивы - C++

23.04.2009, 08:55. Просмотров 1062. Ответов 10
Метки нет (Все метки)

Прозрачная пластина состоит из 8 слоев, показатели преломления заданы массивом n=[2,3,2,4,4,5,2,3]. Луч входит в пластину из ваккума под углом а=30(градусов). Найти угол, под которым луч пересекает последний слой. определить величину смещения луча H. Толщина массива задана массивом h=[4,5,12,3,10,11,10,6].

ПОМОГИТЕ ПОЖАЛУЙСТА!!!!!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.04.2009, 08:55
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Задача на массивы (C++):

Задача на массивы - C++
Дана матрица размерностью N на M, где большинство элементов равно 0. Нужно все элементы матрицы разделить на самое большое число по модулю.

Задача на массивы - C++
Дана действительная квадратная матрица порядка 12. Заменить нулями все ее элементы, расположенные на главной диагонали и выше нее.

Задача на массивы - C++
Удалить из массива M(25) все элементы, значения которых в этом массиве, оставить по одному. Элементы массива задать рандомно. Есть...

Задача на массивы - C++
С++ Помогите написать задачку... *Найти количество отрицательных элиментов массива. *Найти сумму модулей элиментов...

Задача на массивы c++ - C++
В одномерном массиве, состоящем из n целых элементов, вычислить: 1) номер максимального элемента массива; 2) произведение элементов...

задача на массивы - C++
здравствуйте, не могли бы помочь есть задание написать функцию которая сортирует по убыванию массив( сортировка пузырьком) получился...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
marty0701
42 / 9 / 3
Регистрация: 20.04.2009
Сообщений: 32
23.04.2009, 09:54 #2
а формулу в студию!
EnzoMatrix
120 / 120 / 5
Регистрация: 14.03.2009
Сообщений: 462
23.04.2009, 10:05 #3
да без формулы тяжко
insolent
826 / 347 / 15
Регистрация: 30.01.2009
Сообщений: 1,204
23.04.2009, 13:57 #4
Если я не ошибаюсь, то луч света проходит через прозрачную плоскопараллельную пластину толщины h, находящуюся в воздухе. Луч падает на первую поверхность пластины под углом a . В точке падения луч преломляется и далее распространяется в пластине под углом b . На второй грани пластины луч снова преломляется и выходит из пластины в воздух в направлении параллельном первоначальному, то-бишь луч пройдя через пластину имеет такой же угол падения, только смежен относительно первоначального на Н.
C++
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
#include "stdafx.h"
#include <iostream>
using namespace std;
#define _USE_MATH_DEFINES
#include <math.h>
 
int main(int argc,char* argv[])
{
    setlocale(LC_ALL,".1251");
    int n[] = {2,3,2,4,4,5,2,3},
        h[] = {4,5,12,3,10,11,10,6},
        i,
        k = 8;
    double b,
        H1[8],
        H = 0,
        a = 45*M_PI/180;
    for (i = 0; i < k;i++){
        b = asin((sin(a))/n[i]);
        H1[i] = h[i]*sin(a - b)/cos(M_2_PI - b);
        H += H1[i];
    }
    cout << "Последний слой луч пересекёт под углом " << a/(M_PI/180) << "." << endl;
    cout << "Луч сместится относительно первоначального направления на " << H <<  "." << endl;
    system("PAUSE");
    return 0;
}
Иринка
0 / 0 / 0
Регистрация: 21.04.2009
Сообщений: 44
24.04.2009, 15:41  [ТС] #5
Спасибо огромное!!!
Только вот вопрос, что означает M_PI и M_2_PI, а то выдает за ошибку!
и для смещения мне дали такую формулу: Hi=hi/tg(ai), где ai=a0*n1 [a=30(градусов)].
ISergey
Maniac
Эксперт С++
1373 / 884 / 52
Регистрация: 02.01.2009
Сообщений: 2,653
Записей в блоге: 1
24.04.2009, 16:01 #6
Цитата Сообщение от Иринка Посмотреть сообщение
что означает M_PI и M_2_PI,
это
#define M_PI 3.14159265358979323846
#define M_2_PI 0.636619772367581343076
insolent
826 / 347 / 15
Регистрация: 30.01.2009
Сообщений: 1,204
24.04.2009, 16:31 #7
Цитата Сообщение от Иринка Посмотреть сообщение
для смещения мне дали такую формулу: Hi=hi/tg(ai), где ai=a0*n1 [a=30(градусов)].
Я в оптике не силён, просто в справочнике посмотрел( Как я писал выше, что при прохождении луча через пластину, луч сохраняет тот же угол,только смежен).
Да в коде я немного ошибся:

Цитата Сообщение от insolent Посмотреть сообщение
C++
1
a = 45*M_PI/180;
нужно
Цитата Сообщение от insolent Посмотреть сообщение
C++
1
a = 30*M_PI/180;
Цитата Сообщение от Иринка Посмотреть сообщение
выдает за ошибку!
Не знаю. У меня все работает ОК! Ты полностью переписала мой код? Потому что мат. константы не работают, когда не пропишет:

C++
1
2
3
#define _USE_MATH_DEFINES 
 
#include <cmath>
или

C++
1
2
3
#define _USE_MATH_DEFINES 
 
#include <math.h>
ISergey
Maniac
Эксперт С++
1373 / 884 / 52
Регистрация: 02.01.2009
Сообщений: 2,653
Записей в блоге: 1
24.04.2009, 16:45 #8
Вобщето они в стандарт не входят.
/* Define _USE_MATH_DEFINES before including math.h to expose these macro
* definitions for common math constants. These are placed under an #ifdef
* since these commonly-defined names are not part of the C/C++ standards.
*/
insolent
826 / 347 / 15
Регистрация: 30.01.2009
Сообщений: 1,204
24.04.2009, 17:05 #9
Цитата Сообщение от ISergey Посмотреть сообщение
Вобщето они в стандарт не входят.
Ну в стандарт входят-не входят я не узнавал, а то что в MSDN и в коде самой библиотеки math.h они описаны я точно знаю. Там же и написано, что бы прописывали
C++
1
2
3
#define _USE_MATH_DEFINES 
 
#include <cmath>
или
C++
1
2
3
#define _USE_MATH_DEFINES 
 
#include <math.h>
Иринка
0 / 0 / 0
Регистрация: 21.04.2009
Сообщений: 44
25.04.2009, 18:00  [ТС] #10
Спасибо огромнейшее!!! Что бы я без вас делала))
insolent
826 / 347 / 15
Регистрация: 30.01.2009
Сообщений: 1,204
25.04.2009, 18:19 #11
Цитата Сообщение от Иринка Посмотреть сообщение
Спасибо огромнейшее!!! Что бы я без вас делала))
"Спасибо" нажимай))
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.04.2009, 18:19
Привет! Вот еще темы с ответами:

задача на массивы - C++
Заданы две матрицы А и В размером N x N. Сформировать из них прямоугольную матрицу Х размером N x 2N, включая в последовательно столбец ихз...

задача на массивы - C++
Пользователь вводит число (количество знаков не определено). Если в это числе есть цифра 0, то вывести на экран &quot;#0&quot; Если в это числе...

Задача на массивы - C++
Помогите пожалуйста. С задачей на массивы.12 вариант 1 задание

задача на массивы. - C++
Ломаю голову над такой вот загагулиной допусим есть 16ти элементный массив возможные значения в нем так же 1 -16 13 13 13 4 13 14 6...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
25.04.2009, 18:19
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru