1. Какие типы шейдеров вы знаете? 2. Какие встроенные типы в GLSL, отсутствующие в языке С, вы знаете? 3. Какие описатели переменных в GLSL вы знаете? 4. К каким переменным можно применять описатели attribute, uniform и varying? 5. Назовите встроенные переменные, которые служат для доступа к стандартным атрибутам вершины. 6. В чем отличие uniform-переменных от атрибутов? 7. В чем отличие uniform-переменных от varying-переменных? 8. Какие стандартные uniform-переменные вы знаете? 9. Какие стандартные varying-переменные вы знаете? 10. Используя фрагменты кода и шейдеры из этой главы, постройте полноценную программу, выводящую объект с использованием шейдеров. 11. Напишите программу, осуществляющую попиксельное освещение объекта с использованием модели Блин на. 12. Напишите программу, осуществляющую попиксельное освещение объекта с использованием модели Блинна — Фонга.
import array
# creating array
a = array.array('i', [0, 0, 0, 0])
for i in range(3):
print("Number", i,end= " ")
a[i] = int(input())
_t = a[2]
a[2]=a[1]
a[1]=a[0]
a[0]=_t
print("Итог –",end= " ")
for i in range(3):
print(a[i],end= " ")
Результат работы программы:
Number 0 235
Number 1 534
Number 2 346
Итог – 346 235 534
Объяснение:
Простой метод, но достаточно понятный
создаём и инициализируем массив нулями
Вводим числа от пользователя – вот это end= " " заставляет оставить курсор в той же строке.
Меняем местами
Выводим
Если массив будет больше 3, метод так себе.
Вроде так, проверил, у меня всё работает. Аргументы передаются по ссылке, которые ф-ия и меняет. А swap() уже есть в стандартной библиотеке iostream, поэтому нет смысла изобретать свой велосипед. И т.к. в условии пишут про вещественные параметры, то я выбрал тип double (можно и float).
не репортить, если что-то не так, просто в комменты написать и я отвечу.
#include <iostream>
using namespace std;
void SortDec3(double& a, double& b, double& c){
if(a < c)
swap(a, c);
if(a < b)
swap(a, b);
if(b < c)
swap(b, c);
}
int main(){
double a, b, c;
cin >> a >> b >> c;
SortDec3(a, b, c);
cout << a << ' ' << b << ' ' << c;
return 0;
}