Разделы презентаций


Основы, программирования Fortran, C++, D

Содержание

Занятие 4, операторы и Windows1. Операторы объявления имен и – выражения (;)Представление базовых (последовательных) операторов в алгоритмической записи. 2. Построение программ в среде Windows Файловая система и командная строка ОС Структура среды компиляции

Слайды и текст этой презентации

Слайд 1Основы, программирования Fortran, C++, D
Санкт-Петербургский государственный университет фак. Прикладной математики – процессов управления гр.

103 – прикладная математика и информатика
28 сентября 2013 г.

Программирование. Занятие № 4 Храмушин Василий Николаевич – V.Khramushin@SPBU.ru каф. компьютерного моделирования и многопроцессорных систем
Основы, программирования Fortran, C++, DСанкт-Петербургский  государственный университет фак. Прикладной математики – процессов управления гр. 103 –

Слайд 2Занятие 4, операторы и Windows
1. Операторы объявления имен и –

выражения (;)
Представление базовых (последовательных) операторов в алгоритмической записи.
2. Построение программ

в среде Windows
Файловая система и командная строка ОС
Структура среды компиляции программ
Интегрированная среда разработки С::В.
3. Главная процедура и работа простейшей интерактивной графической программы.
Занятие 4, операторы и Windows1. Операторы объявления имен  и – выражения (;)Представление базовых (последовательных) операторов в

Слайд 3гр.103 – Прикладная математика и информатика
1. Власов Александр Александрович

+ + +
2. Данилов Артем Дмитриевич + + +
3. Каюмова Диана Шамильевна

+ +
4. Колесова Александра Александровна + + +
5. Лапин Егор Дмитриевич + + +
6. Леганькова Дарья Андреевна + + +
7. Минаева Ульяна Сергеевна + + +
8. Мозин Виталий Романович + + +
9. Пенкрат Андрей Олегович + + ---
10. Глотова Екатерина Андреевна +
11. Пономарева Юлия Константиновна + + +
12. Сатина Алена Юрьевна + + +
13. Сафронов Вадим Викторович + --- ---
14. Симанков Сергей Сергеевич + + +
15. Смирнова Дарья Сергеевна + +
16. Фатькина Анна Игоревна + + +
17. Федосеев Георгий Александрович + + +
гр.103 – Прикладная математика и информатика1.  Власов Александр Александрович 	+	+	+		2.  Данилов Артем Дмитриевич 	+	+	+	3.

Слайд 4Вопросы от 21 сентября:
Ключевые слова и зарезервированные идентификаторы языков программирования

(объявление данных и исполняемые операторы – Алгол – Фортран, С,

С++, Ди);
Математические и логические операции исторических языков программирования (математические и программные выражения)
Приоритеты и последовательность константных и исполняемых выражений (литералы времени компиляции и интерпретация выражений на этапах сборки и исполнения программы).
… только суть – что и зачем?
Вопросы от 21 сентября:Ключевые слова и зарезервированные идентификаторы языков программирования (объявление данных и исполняемые операторы – Алгол

Слайд 5Практика, 28 сентября, 2-3 пара
Персональные компьютеры
CB\codeblocks.exe – интегрированная среда

разработки
MinGW – компиляторы Fortran, C, C++, (D)
MinGW\bin – исполняемые модули

(*.exe, *.dll)
MinGW\include – прототипы стандартных пакетов (*.h)
MinGW\lib – библиотеки программ Win32 и Сlib (*.а)

Классный компьютер
login: student101e, password: student101e \\ws101-operator\Shared folder\Khram\GL
Практика, 28 сентября, 2-3 пара Персональные компьютерыCB\codeblocks.exe – интегрированная среда разработкиMinGW – компиляторы Fortran, C, C++, (D)MinGW\bin

Слайд 6Фортран-4
Fortran –алгоритмическая последовательность операторов из эпохи зарплатных табуляторов – с командами-операторами:
исполняемыми:

присваивание, управление и ввод/вывод;
невыполняемыми: заголовки процедур/функций (оператор-функции), описание и инициализация

данных, форматирование ввода/вывода.

«любая математическая задача уже имеет решение на Фортране»
не совсем!!

Фортран-4Fortran –алгоритмическая последовательность операторов из эпохи зарплатных табуляторов – с командами-операторами:исполняемыми: присваивание, управление и ввод/вывод;невыполняемыми: заголовки процедур/функций

Слайд 7Fortran-IV – язык математики
C ----------------- Лабораторная работа N 7 C

----------------- Программирование типовых нелинейностей EXTERNAL ZN
WRITE (*,'(A)')'----- Лабораторная работа

N7 -----‘ WRITE (*,'(A)') C ----------------- Исходные данные DATA A/2./, B/3./, C/6./, Xn/-5./, Xk/5./, H/0.5/ C ----------------- Начало цикла
X=Xn
Y=ZN(A,B,C,X)
WRITE(*,2) X,Y
2 FORMAT (1X,'X=',F5.1,2X,'Y=',F6.2)
X=X+H
IF (X.LE.Xk) GOTO 1 C ----------------- Конец цикла
STOP
END C ----------------- Подпрограмма-функция FUNCTION ZN(A,B,C,X) IF (-A.LE.X.AND.X.LE.A) P=0 IF (X.GE.B) P=C IF (-B.GE.X) P=-C
ZN=P RETURN END
Fortran-IV – язык математикиC ----------------- Лабораторная работа N 7  C ----------------- Программирование типовых нелинейностей  	EXTERNAL

Слайд 8Algol-60
Концепция языка математических наук – международный язык европейских программистов.
1. Язык

допускает видоизменения эталонного образца, связанные с удобством печатания и написания

(например, индексы, пробелы, показатели степени, греческие буквы, комментарии и пр.).
2. Он используется для формулирования и взаимного обмена алгоритмами (начало лучше, чем у фортрана).
3. Знаки языка могут быть различными в разных странах, однако должно гарантироваться однозначное соответствие с эталонным представлением.
Algol-60Концепция языка математических наук – международный язык европейских программистов.1. Язык допускает видоизменения эталонного образца, связанные с удобством

Слайд 9Algol-60 (а-ля Pascal)
Procedure Absmax( a ) Size:( n, m )

Result:( y ) Subscripts:( i, k ); value n, m;

array a; integer n, m, i, k; real y;
comment Наибольший элемент матрицы a, размера n на m передаётся в виде результата в y, индексы в параметры i и k;
begin integer p, q;
y := 0; i := k := 1;
for p:=1 step 1 until n do
for q:=1 step 1 until m do
if abs(a[p,q]) > y then
begin y := abs(a[p, q]); i := p; k := q
end
end Absmax

Образцовый язык алгоритмов

Algol-60  (а-ля Pascal)Procedure	Absmax( a )  		Size:( n, m ) Result:( y ) Subscripts:( i, k

Слайд 10Cи – стандартные операции

Cи – стандартные операции

Слайд 11Cи – стандартные операции

Cи – стандартные операции

Слайд 12Cи – ключевые слова
Имена, начинающиеся с двойного подчёркивания (__), или

с подчёркивания и _Заглавной буквы, не должны использоваться в качестве

идентификаторов программных переменных. Все имена, начинающиеся с _подчёркивания, зарезервированы для использования в качестве производных имён компоновщика; --- такие имена могут использоваться в локальных переменных, в именах членов структуры и т.д.
Cи – ключевые словаИмена, начинающиеся с двойного подчёркивания (__), или с подчёркивания и _Заглавной буквы, не должны

Слайд 13Программы – это операции на предопределенных типах данных
Локальная память (самые быстрые

вычисления): register type ident = value; auto type ident =

value.
Статическая память (сохранение данных в процедурах) static type ident = value; extern type ident.
Динамическая память (собственно работа с большими массивами информации) static или extern type *ident = new( size );

Элементарные типы данных: целые числа:
bool - логические true | false enum – именные перечисления char – текстовые символы short – индексы из 2 байт int – число (слово) из 4 байт long long – двойное слово
действительные числа: float – число из 4 байт double – число из 8 байт составные числа – структуры: struct , union, ++ class

Программы – это операции на предопределенных типах данныхЛокальная память (самые быстрые вычисления): register type ident = value;

Слайд 14Однородные координаты OpenGL
В однородных координатах все вычислительные операции сводятся к

произведениям матриц [4x4]

Начальная инициализация
glLoadIdentity()  CTM – current transformation

matrix = 1.
glTranslate*( x, y, z )    Перемещение
glScale*( x, y, z )    Масштабирование
glOrtho( l, r, b,t, n, f )    Ортогональная проекция
glFrustum( l, r, b,t, n, f )    Перспективная проекция
glRotate*( a, x, y, z )    Вращение



и
Однородные координаты OpenGLВ однородных координатах все вычислительные операции сводятся к произведениям матриц [4x4]Начальная инициализация glLoadIdentity()  CTM

Слайд 15Однородные координаты OpenGL видовые преобразования
Ортогональная проекция glOrtho( l, r, b,t,

n, f )
Перспективная проекция glFrustum( l, r, b,t, n,

f )
gluPerspective( ayz, aspect, n, f )
Все видовые преобразования: управление углами обзора и освещенностью моделируемых объектов, – это нельзя сделать лучше, чем есть в OpenGL и общедоступно ! ! !
Однородные координаты OpenGL видовые преобразованияОртогональная проекция  glOrtho( l, r, b,t, n, f )Перспективная проекция  glFrustum(

Слайд 16Алгоритмические языки С, С++, D
Строение пакета MinGW для GCC.GNU.org (Fortran, C,

C++, Ada, Java, ++ D)
MinGW\bin\*.exe – директория исполняемых

модулей
MinGW\include\*.h – расположение прототипов С
include\GL\*.h – пакет OpenGL + GLut
include\Gsl\*.h – пакет GNU scientific library
include\Sys\*.h – старые системные вызовы С
MinGW\lib\*.a – директория для объектных библиотек
MinGW\libexec\gcc\mingw32\4.3.3\ – модули компоновки
MinGW\mingw32\ –//– прочие нестандартные установки
-
DC\devcpp.exe – интегрированная среда WxDev-C++
CB\codeblocks.exe ––//–– Code::Block
Алгоритмические языки С, С++, D Строение пакета MinGW для GCC.GNU.org 		(Fortran, C, C++, Ada, Java, ++ D)

Слайд 17Доступ к компьютерной графике в С www.opengl.org; www.glfw.org; user.xmission.com/~nate/glut.html‎
Строение и

организация доступа к графической среде OpenGL с помощью GLFW

и/или Glut
Dev\include\Gl\OpenGL.h – главный список прототипов
GLFW3.h – вызов кроссплатформенных модулей
GLut.h – устаревшая надежная графическая среда
Dev\lib\libopengl32.a – библиотека динамических ссылок \libglfw3.a – это лучше брать в статическом \libglut32.a – исполнении, лучше – в исходном коде
Windows\System32\OpenGL.dll + GLu32.dll – только так
Dev\GLFW3.dll – эти динамические библиотеки
Glut32.dll – должны быть либо рядом с программой, либо в области системных утилит Windows
Доступ к компьютерной графике в С www.opengl.org; www.glfw.org;  user.xmission.com/~nate/glut.html‎Строение и организация доступа к графической среде

Слайд 18С, OpenGL + GLFW
1 //===========================================================
2 // Simple GLFW

example Graphics Library Frame Work
3 // Copyright (c) Camilla

Berglund «elmindreda@elmindreda.org»
21 // This notice may not be removed or altered from any source distribution
24 //==========================================================
27 #include
29 #include
30 #include
32 static void error_callback(int error, const char* descript)
33 { fputs( descript, stderr );
35 }
37 static void key_callback
(GLFWwindow*window,int key,int scancode,int action,int mods)
38 { if (key == GLFW_KEY_ESCAPE && action == GLFW_PRESS)
40 glfwSetWindowShouldClose(window, GL_TRUE);
41 }
43 int main(void)
44 { GLFWwindow* window;
47 glfwSetErrorCallback(error_callback);
49 if (!glfwInit()) exit(EXIT_FAILURE);
52 window=glfwCreateWindow(640,480,"Simple ex",NULL,NULL);
53 if (!window){ glfwTerminate(); exit( EXIT_FAILURE ); }
59 glfwMakeContextCurrent( window );
61 glfwSetKeyCallback( window, key_callback );
С, OpenGL + GLFW 1 //=========================================================== 2 // Simple GLFW example 	Graphics Library Frame Work 3 //

Слайд 19С, OpenGL + GLFW
63 while (!glfwWindowShouldClose(window))
64

{ float ratio; int width, height;
68

glfwGetFramebufferSize(window, &width, &height);
69 ratio = width / (float) height;
71 glViewport(0, 0, width, height);
72 glClear(GL_COLOR_BUFFER_BIT);
74 glMatrixMode(GL_PROJECTION);
75 glLoadIdentity();
76 glOrtho(-ratio, ratio, -1.f, 1.f, 1.f, -1.f);
77 glMatrixMode(GL_MODELVIEW);
79 glLoadIdentity();
80 glRotatef((float)glfwGetTime()*50.f,0.f,0.f,1.f);
82 glBegin(GL_TRIANGLES);
83 glColor3f(1.f, 0.f, 0.f);
84 glVertex3f(-0.6f, -0.4f, 0.f);
85 glColor3f(0.f, 1.f, 0.f);
86 glVertex3f(0.6f, -0.4f, 0.f);
87 glColor3f(0.f, 0.f, 1.f);
88 glVertex3f(0.f, 0.6f, 0.f);
89 glEnd();
91 glfwSwapBuffers(window);
92 glfwPollEvents();
93 }
95 glfwDestroyWindow(window);
97 glfwTerminate();
98 exit(EXIT_SUCCESS);
99 }
С, OpenGL + GLFW 63   while (!glfwWindowShouldClose(window)) 64   {  float ratio; int

Слайд 20С++, OpenGL + GLut
// GLUT Shapes Demo, written

by Nigel Stewart November 2003
#include // указание на использование

GLut+OpenGL
#include // стандартная библиотека С

static int slices=16, stacks=16; // локальные статические данные
int Win_roll=0; // глобальная переменная
extern float mTW, mTH; // глобальные данные, // объявленные в других модулях
int main( int argc, char *argv[] ) // главная процедура
{ glutInit( &argc, argv ); // запуск графического пакета glutInitWindowSize( 640,480 ); // установка исходных размеров glutInitWindowPosition( 10,10 ); // и местоположения гр.окна glutInitDisplayMode( GLUT_RGB|GLUT_DOUBLE|GLUT_DEPTH ); glutCreateWindow( "Заголовок первого графического окна" ); …. определение точек входа в процедуры обработки прерываний …. описание используемых материалов и настройка инструментов glutMainLoop(); // вход в бесконечный цикл прерываний return 0;
}
С++, OpenGL + GLut				  // GLUT Shapes Demo, written by Nigel Stewart November 2003#include  //

Слайд 21С++, OpenGL + GLut
// Многооконные графические системы

выполняются под // контролем прерываний от операционной

системы // или под воздействием команд от внешних устройств

int main( int argc, char *argv[] )
{ // … начальная инициализация графического пакета // указания на точки входа в рабочие процедуры glutReshapeFunc( resize ); // изменение размеров граф. окна glutDisplayFunc ( display ); // необходимость перерисовки окна // = главная графическая процедура glutKeyboardFunc( key ); // обработка команд от клавиатуры glutIdleFunc ( idle ); // выполнение действий при простое … glClearColor( 1,1,1,1 ); // указание фонового цвета граф. окна // … другие определения и настройки графической среды glutMainLoop(); // уход в бесконечный цикл системных прерываний return 0; // -- обычная особенность академической разработки
}
С++, OpenGL + GLut  //  Многооконные графические системы выполняются под   //

Слайд 22С++, OpenGL + GLut (callback handles)
static void resize( int width,

int height ) // масштабирование
{ const float ar = (float)width/(float)height; //

графического экрана
glViewport( 0, 0, width, height ); // стандартными
glMatrixMode( GL_PROJECTION ); // средствами пакета
glLoadIdentity(); // OpenGL
glFrustum( -ar, ar, -1.0, 1.0, 2.0, 100.0 ); //
glMatrixMode( GL_MODELVIEW );
glLoadIdentity() ; // собственно
} // процедура представления
static void display( void ) // графических результатов
{ double t=glutGet( GLUT_ELAPSED_TIME )/1000.0, a = t*90.0;
glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );
glColor3d( 1,0,0 ); // красный цвет
glPushMatrix(); // сохранение текущего базиса
glTranslated( -2.4,1.2,-6 ); glRotated( 60,1,0,0 ); glRotated( a,0,0,1 );
glutSolidSphere( 1,slices,stacks );
glPopMatrix(); // восстановление исходного базиса…
glutSwapBuffers();
}
С++, OpenGL + GLut (callback handles)static void resize( int width, int height )	// масштабирование { const float

Слайд 23С++, OpenGL + GLut (callback handles)
static void key( unsigned char

key, int x, int y )
{ switch (key)
{

case 27 : case 'q': exit( 0 ); break;
case '+': slices++; stacks++; break;
case '-': if (slices>3 && stacks>3){ slices--; stacks--; } break;
}
glutPostRedisplay();
}
// чистый режим
// ожидания
static void idle(void)
{ glutPostRedisplay();
}

Стандартный пример из среды программирования Code::Blocks
С++, OpenGL + GLut (callback handles)static void key( unsigned char key, int x, int y ){ switch

Слайд 24Вопросы:
Структура типовой программы на алгоритмическом языке программирования (операторы описания данных

и выполняемые команды);
Типовое построение среды компиляции и сборки программ на

алгоритмических языках программирования (структура библиотек на примере проекта GCC.GNU)
Реализация простейшей интерактивной графики в среде GLFW и Glut для OpenGL (особенности исполнения программы, управляемой внешними прерываниями).
… и то уже не просто …
Вопросы:Структура типовой программы на алгоритмическом языке программирования  (операторы описания данных и выполняемые команды);Типовое построение среды компиляции

Слайд 25Занятие четвертое, 28 сентября
4++ Практические занятия …
Графические пакеты, настройка и

выполнение стандартных примеров программ с использованием OpenGL + GLFW
Рассмотрение структуры

пакета для масштабирования и графических построений плоскости.
Особенности проведения математического анализа и вычислительных экспериментов.

Занятие четвертое, 28 сентября4++ Практические занятия …	Графические пакеты, настройка и выполнение стандартных примеров программ с использованием OpenGL

Слайд 26Пятое занятие 5 октября…
Процедуры и функции
Функции – основные процедурные блоки

при алгоритмическом программировании на языке Си++.
Правила записи, вызова и

согласованного использования различных параметров.
Вызов функций
Имена функций
Необязательные аргументы функций
Рекурсия
Пятое занятие 5 октября…Процедуры и функции	Функции – основные процедурные блоки  при алгоритмическом программировании  на языке

Слайд 27Вопросы
14 сентября
Концепция построения и особенности реализации языков программирования на примерах

Fortran(57), Algol(58), В(69), C(72), C++(83), D(2001) и др;
Машинно-зависимые типы данных

(стек, статика, куча), особенности их использования, скорость доступа и эффективность выполнения операций на линейном процессоре.
Компиляция и интерпретация, достоинства в использовании и проблемы реализации формализованных и специальных языков программирования (декларативные алгоритмы и функциональные языки искусственного интеллекта)
21 сентября
Ключевые слова и зарезервированные идентификаторы языков программирования (объявление данных и исполняемые операторы – Алгол – Фортран, С, С++, Ди);
Математические и логические операции исторических языков программирования (математические и программные выражения)
Приоритеты и последовательность константных и исполняемых выражений (литералы времени компиляции и интерпретация выражений на этапах сборки и исполнения программы).
… только суть – что и зачем?
Вопросы14 сентябряКонцепция построения и особенности реализации языков программирования на примерах Fortran(57), Algol(58), В(69), C(72), C++(83), D(2001) и

Обратная связь

Если не удалось найти и скачать доклад-презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое TheSlide.ru?

Это сайт презентации, докладов, проектов в PowerPoint. Здесь удобно  хранить и делиться своими презентациями с другими пользователями.


Для правообладателей

Яндекс.Метрика