рефераты конспекты курсовые дипломные лекции шпоры

Реферат Курсовая Конспект

Лекция 1 Понятие программы и языка программирования

Лекция 1 Понятие программы и языка программирования - раздел Программирование, Лекция 1 ...

Лекция 1

Понятие программы и языка программирования. 1 Компоненты языка программирования. 3 Структурная схема компьютерной программы.. 3

Компоненты языка программирования

· средства описания данных, позволяющие программисту определять различные формы представления данных (типы данных) и переменные разных типов; · набор операций над основными типами данных (включая ввод-вывод), а также… · набор операторов, определяющих различные варианты порядка выполнения выражений в программе (последовательность,…

Структурная схема компьютерной программы

Взаимосвязь алгоритма и данных в программе не является простой и линейной. Процесс выполнения любой программы можно рассматривать с двух точек зрения: как последовательность выполнения команд, в которых содержится информация об операндах (данных), которые они обрабатывают – поток команд (поток управления).С другой стороны – любой элемент данных можно рассматривать как результат выполнения действий над исходными данными и как источник данных (операнд) для последующих результатов (Рис.1.1), т.е. в программе также присутствует логическая последовательность вычислений (преобразований данных), называемая потоком данных.Исторически сложилось так, что в традиционной (фон Неймановской) архитектуре в программе в явном виде задается последовательность команд, т.е. программа выглядит как поток управления,в котором алгоритмическая компонента является первичной (ведущей), а данные – вторичной (ведомой).

 
 

 

 


 

Рис.1.1. Структурная схема компьютерной программы

Жизненный цикл программного средства

· системный анализ, в ходе которого определяют потребность в ПС, его назначение и основные функциональные характеристики, оцениваются затраты и… · проектирование ПС, включающее в себя разработку структуры комплекса и его… · эксплуатацию ПС, заключающуюся в исполнении программ и получении ожидаемых результатов, а также в обеспечении…

Технология подготовки и решения задачи на компьютере

o ознакомление с поставленной задачей – анализ исходных данных, условий и целей решения задачи, формулировку требований к программе, разработку… o составление плана решения – определение структур данных, состава и… o осуществление решения – переработку согласно составленному плану входной информации в выходную информацию,…

Вычисление значения функции в заданной точке

  Представленные варианты программы используют разные средства ввода-вывода:   //proba_2_1.cpp #include <iostream> #include <conio.h> //нет директивы using…

Вычисление суммы и количества целых чисел, введенных пользователем с клавиатуры

Proba_3.cpp

#include <conio.h> using namespace std; //директива есть!!!, std:: перед cout далее отсутствует … int main()

Демонстрация работы со строками на основе использования класса string

//proba_4.cpp

#include <iostream>

#include <string> //библиотечный класс string

#include <conio.h>

using namespace std;

int main() {

string response="Enter Your name: "; //определение строки response класса string

cout << response;

string name; //определение объекта-строки name класса string

cin >> name; //ввод значения объекта-строки name до пробела

string greeting ="Hello, "; //определение строки greeting класса string

greeting = greeting + name + "!"; //конкатенация (сцепление) строк

cout << greeting << endl;

_getch();

return 0;

}

Результаты выполнения программы:

Enter Your name:Larisa<enter>

Hello, Larisa!

 

Виды представления программы и данных

Программа имеет два представления:

  • текстовое – исходный текст программы, хранимый в виде текстовых файлов;
  • кодовое:

o последовательность машинных команд, которая получается как результат обработки (компиляции) исходного текста программного модуля и которая не может быть непосредственно выполнена компьютером (объектный код);

o двоичный машинный код, готовый к исполнению и хранимый в виде exe-файла;

 

Данные имеют также два представления:

· внешнее – в тексте программы, при вводе или выводе значений на экран и, возможно, хранении (в текстовом файле)

· внутреннее – двоичный код, формируемый по определенным правилам компилятором и средой исполнения в оперативной памяти (в зависимости от типа данного).

Процесс компиляции программы

Функцию перевода программы в машинный код выполняет программа-транслятор,имеющая две разновидности: компилятор и интерпретатор.

Интерпретация – непосредственное выполнение программы на языке высокого уровня, не требующее трансляции инструкций (операторов) формального языка в машинный код. Интерпретаторы требуют наличия исполняющей среды для выполнения программы; удобны, когда программы часто перекомпилируются для добавления в них новых возможностей и исправления ошибок.

Компиляция–перевод текста программы с исходного формального языка на другой, более простой язык. Скомпилировать исходный код – означает выполнить программу-компилятор.В С++ компилятор является одним их компонентов IDE (Integrated Development Environment) – интегрированной среды разработки, предоставляющей программисту средства для комплексной работы с программой (редактирование, компиляция, компоновка, загрузка, выполнение, отладка, справка). Удобство IDE (например, Microsoft Visual Studio 2005) заключается в том, что не приходится работать с множеством приложений, так как все задачи выполняются в рамках IDE.

Компиляция и интерпретация отличаются совмещением фаз обработки объектов программы во времени:

· при компиляции фазы преобразования и выполнения действий разнесены во времени, но зато каждая из них выполняется над всеми объектами программы одновременно;

· при интерпретации, наоборот, преобразование и выполнение действий объединены во времени, но для каждого объекта программы. Отлаженные скомпилированные программы выполняются более эффективно.

Различные языки программирования включают процессы компиляции и интерпретации в разных пропорциях и сочетаниях. Язык Си++ является «чистым компилятором»:результатом трансляции является программный код, в который транслятор не включает никаких «лишних» команд (например, проверки установленных ограничений или обнаружения ошибок), что позволяет гарантировать эффективность и независимость программного кода и делает язык единственным (кроме Ассемблера) языком системного программирования, на котором пишутся ядро операционной системы, драйверы и т.п.

 

Классическая схема подготовки исполняемой программы

Программа выполняется в компьютере, архитектура которого обеспечивает язык программирования, именуемый машинным кодом.Данные в этом языке представлены машинными словами,хранящимися в памяти и в регистрах процессора, а выполняемые действия – системой команд. Рассмотрим схему подготовки исполняемой программы в типичной среде программирования С++ (Рис.1.3):

(1) – программа набирается в текстовом редакторе среды разработки и запоминается на диске (расширение имени файла .срр);

(2) – программа-препроцессор распознает в тексте программы директивы препроцессора (начинаются с символа #), обрабатывает директиву #include<…..>и подключает к исходному тексу программы указанные в ней файлы. Основная цель препроцессора – закончить формирование исходного кода программы на С++, поэтому типичное для него действие – добавление или изменение исходного кода перед компиляцией. Выполняя директиву, препроцессор преобразовывает исходный код программы в расширенный код («единицу трансляции»), который и подается на вход компилятора.

(3) – программа-компилятор выделяет лексемы (минимальные смысловые конструкции языка), затем на основе грамматики языка распознает более сложные смысловые конструкции языка (определения, объявления, выражения, операторы и т.д.), построенные из лексем, выявляет синтаксические ошибки и при их отсутствии создает код на языке Ассемблера; в языке программирования Ассемблерсистема команд, способы адресации, машинные слова и их адреса обозначаются символическими именами; Ассемблер работает с компьютерной архитектурой, но ее элементы представлены не во внутренней (двоичной) форме, а в обычной текстовой;

 
 

 

 


Рис.1.3. Схема подготовки исполняемой программы в типичной среде программирования С++

 

(4) – программа-ассемблерпереводитассемблерный код на машинный язык, создает объектный модуль программы с расширением .obj и сохраняет его на диске. Файл, содержащий скомпилированную программу, – это объектный модуль программы.

(5) – программа-компоновщик (редактор связей, Linker) объединяет объектный код программы (совместно компилируемые модули) с объектными кодами используемых ею библиотечных функций (библиотечные файлы имеют расширение .lib) и стандартным кодом начальной загрузки, в результате чего создается исполняемый загрузочный модуль программы – файл с расширением .exe, сохраняемый на диске. Обычно программы содержат ссылки на функции, определенные вне самой программы: в стандартных или личных библиотеках, а объектный код содержит «дыры» из-за этих отсутствующих частей; компоновщик заполняет эти «дыры».

(6) – программа-загрузчик размещает скомпонованную программу в памяти (забирает исполняемый код с диска и размещает его в памяти).

Язык Си++ имеет прямой выход на компьютерную архитектуру, многие его компоненты напрямую на нее отображаются. Базовые типы данных совпадают с основными формами представления данных в процессоре, имеется прямое соответствие между переменными и машинными словами, набор операций соответствует общепринятому минимуму для системы команд, указатели интерпретируются как адреса, имеется возможность работы с памятью на низком (архитектурном) уровне. Поэтому Си++ можно назвать машинно-независимым Ассемблером. Особенности выполнения указанных действий зависят от конкретного компилятора языка С++ и операционной системы, в которой он работает. Технические подробности следует изучить по документации конкретного программного продукта.

 

Технологический цикл обработки программы

Рис.1.4. Технологический цикл обработки программы

Организация памяти компьютера

Какой смысл заключен в данных, какими символами они выражены – буквенными или цифровыми, что означает то или иное число – все это определяется… Основу компьютерной архитектуры составляет прямо адресуемая память: массив… Для представления содержимого машинных слов используется шестнадцатеричная система счисления. В дальнейшем описании мы…

Сегментация программы

Одновременное нахождение в памяти «алгоритма» и данных соответствует принципу хранимой программы, который заключается в том, что программный код… Компоненты программы находятся в памяти,которая, в принципе, является общей… Процессор имеет в своем составе набор машинных слов – регистров.В зависимости от назначения они могут хранить как…

Процесс исполнения программного кода

· программный код – последовательность команд,размещенная в сегменте кода (CS), на начало которого ссылается одноименный регистр процессора; · каждая команда имеет в сегменте свой относительный адрес (от начала… · команда представляет собой машинное слово, обычно переменной длины, и состоит из нескольких полей. Обязательным…

Область определения глобальных переменных ограничена пределами одного файла (File1.cpp), и, следовательно, эти переменные невидимы в другом файле (File2.cpp). Для их использования требуется также объявление extern (например, линия 5 для массива array; линия 7 для переменной ext_ch; только функцияfunction3() для переменной ext_pp).

File2.cpp
File1.cpp

Рис.1.9. Структура программы из двух файлов и область действия переменных в программе

Пример более сложной программы на С++ (сортировка строк)[10]*

Программа сортирует строки в лексикографическом порядке, возрастающем или убывающем в зависимости от признака, передаваемого функции main() через аргумент argv, и выводит их на экран.

Исходный текст программы представлен в текстовых файлах (main.cpp, bblsort.cpp) и в заголовочных файлах (Рис.1.10):

· стандартном заголовочном файлеstdafx.h

· файлеbblsort.h (подключаемом в начале каждого из текстовых файлов в рамках файлаstdafx.h).

 

 

 


Рис.1.10. Структура программы сортировки строк

 

Программа с комментариями и подробное описание действий, выполняемых каждым фрагментом (А, B, C, D, …), представлены ниже:

 

//bblsort.h – заголовочный файл
А #define MAXLINES 10 #define LINESIZE (12+1)
//stdafx.h – стандартный заголовочный файл
  B #include <iostream> //для ввода/вывода #include <conio.h> //для _getch() #include <cstring> //для strcmp(), strcpy_s() #include "bblsort.h" //для MAXLINES, LINESIZE int rdlines(void); //прототипы функций, определенных в файле main.cpp void wrlines(int);   int lexcmp(int, int);//прототипы функций,определенных в файле bblsort.cpp void swap(int, int); void bblsort(int);   using namespace std;
   
  //main.cpp – программный файл
C #include "stdafx.h" //подключение стандартного заголовочного файла
D //глобальные переменные char Line[MAXLINES] [LINESIZE]; //буфер строк int Revflg; //признак направления сортировки  
E //определение функции main() int main (int argc, char **argv) //аргументы вызова программы // argc - число аргументов, argv – указатель на строки-аргументы
  {  
F int numlines; //локальная переменная функции main()  
G Revflg = (argc>1 && argv[1][0] =='-'); numlines = rdlines();//вызов функции ввода строк cout << "n----------------------n" ; bblsort(numlines);//вызов функции сортировки,аргумент – количество строк wrlines(numlines);//вызов функции вывода строк,аргумент – количество строк cout << "n----------------------n" ; _getch(); //функция _getch(); ожидает нажатия клавиши return 0; }
   
H //определение функции rdlines() ввода строк с клавиатуры static int rdlines() //функция доступна только в данном файлеmain.cpp
I { int i; //локальная переменная функции rdlines() for (i=0; i < MAXLINES; i++) if (!cin.getline(Line[i], LINESIZE) ) break; return i; //функция возвращает количество введенных строк }
   
J //определение функции wrlines() вывода n строк на экран static void wrlines(int n) //функция доступна только в файле main.cpp { unsigned i; //локальная переменная функции wrlines() for (i=0; i<n; i++) cout << Line[i] << endl; return; //функция выводит строки и ничего не возвращает }
   
//bblsort.cpp – программный файл
K #include "stdafx.h" //подключение стандартного заголовочного файла
   
L extern char Line [][LINESIZE]; //объявление массива Line, // определенного в файле main.cpp
   
M //определение функции bblsort()сортировки строк void bblsort( int n) // n - число строк { unsigned i, j; //локальные переменные функции bblsort() for (i=1; i<n-1; i++) for (j=n-1; j>=i; j--) if (lexcmp(j-1, j)) swap(j-1, j); return; //функция сортирует строки и ничего не возвращает }
   
N // определение функции lexcmp() сравнения строк //аргументы i, j – номера строк для сравнения static int lexcmp (int i, int j) {//функция доступна только в файле bblsort.cpp extern int Revflg; //объявление Revflg, определение в файле main.cpp int lc; lc= strcmp(Line[i], Line[j]); //библиотечная функция сравнения строк return ((lc<0 && Revflg) || (lc > 0 && !Revflg)); }//функция lexcmp() возвращает 1 или 0 в зависимости от результата //сравнения строк lc и признака Revflg направления сортировки
   
O //определение функции swap() обмена строк // аргументы i, j – номера строк для обмена static void swap( int i, int j) //функция доступна только в этом файле { char temp [LINESIZE]; strcpy_s(temp, Line[j]); //библиотечная функция копирования строк strcpy_s(Line[j], Line[i]); strcpy_s(Line[i], temp); return; //функция swap() меняет строки и ничего не возвращает }

 

А– заголовочный файл bblsort.h с препроцессорными константами MAXLINES и LINESIZE. Препроцессорные константы обычно помещаются в заголовочный файл, включаемый в другие файлы программы, по мере необходимости. При изменении значений констант изменения затронут только файлbblsort.h.

B – стандартный заголовочный файл stdafx.h. Содержит директивы препроцессора для подключения стандартных заголовочных файлов с прототипами библиотечных функций (для работы со строками и другими функциями, вызываемыми в файле); директиву препроцессора для подключения пользовательского заголовочного файла bblsort.hс препроцессорными константами MAXLINES и LINESIZE; прототипы функций rdlines(), wrlines(), определенных в файле main.cpp, иlexcmp(), swap(), bblsort(), определенных в файле bblsort.cpp программы, а также директиву using namespace std; определяющую для данной программы в качестве пространства,в котором распознаются ее имена, стандартное пространство имен std (за пределами его имена будутнеизвестны).

БлокиотСдоJвключительно представляют содержание файла main.cppс головной функцией main()и вызываемыми в ее теле функциями rdlines()иwrlines().

С– подключение к файлу main.cppстандартного заголовочного файлаstdafx.h.

  В блоках от E до Gпредставлено определение головной функции main(),… E– заголовок функции main(): int argc – число строк-аргументов переданное в программу; char** argv (или char* argv[])…

K – подключение к файлу bblsort.cpp стандартного заголовочного файлаstdafx.h.

M – определение функции bblsort(). Функция вызывает функции сравнения – lexcmp() и обмена – swap() строк. Функция не описывается как static, потому… N – определение функции lexcmp(). Возвращаются значения Истина (1) или Ложь… O – определение функции swap(). Функция определена как имеющая тип void. Прототип стандартной функция strcpy()…

– Конец работы –

Используемые теги: Лекция, Понятие, программы, языка, программирования0.075

Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: Лекция 1 Понятие программы и языка программирования

Что будем делать с полученным материалом:

Если этот материал оказался полезным для Вас, Вы можете сохранить его на свою страничку в социальных сетях:

Еще рефераты, курсовые, дипломные работы на эту тему:

Учебная программа курса. 4. Лекция 1. История психологии как наука. 5. Лекция 2. Античная философия и психология. 6. Лекция 3. Развитие психологии в Средневековый период. 19. Лекция 16. Тревога и защита
Введение... Учебная программа курса... Рабочая программа курса Лекция История психологии как наука...

ЛЕКЦИЯ № 1. Факторы выживания в природной среде ЛЕКЦИЯ № 2. Обеспечение водой ЛЕКЦИЯ № 3. Обеспечение питанием ЛЕКЦИИ по ОБЖ
КЛАСС Содержание Стр I четверть ЛЕКЦИЯ Факторы выживания в природной среде ЛЕКЦИЯ... ЛЕКЦИЯ Факторы выживания в природной... ЛЕКЦИЯ Обеспечение питанием...

Понятие литературный язык. Место литературного языка среди других форм существования языка
Литературный язык это язык государственных и культурных учреждений школьного обучения радио и телевидения науки публицистики художественной... Современный литературный язык многофункционален Он используется в различных... Основные сферы использования литературного языка телевидение и кино наука и образование печать и радио...

Лекция 1. Объектно-ориентированное программирование – это новый подход к программированию. Объектно- ориентированные языки обладают свойством
ВВЕДЕНИЕ... Приступая к изучению более сложных конструкций языка С следует прежде всего повторить тот материал который был...

Лекции 1.ОСНОВНЫЕ ПОНЯТИЯ И КАТЕГОРИЯ ИНФОРМАТИКИ. 2 ЛЕКЦИИ 2. МАТЕМАТИЧЕСКИЕ ОСНОВЫ ИНФОРМАТИКИ. СИСТЕМЫ СЧИСЛЕНИЯ. 12 ЛЕКЦИЯ 3. АППАРАТНОЕ ОБЕСПЕЧЕНИЕ ЭВМ. 20 ЛЕКЦИЯ 4. ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ КОМПЬЮТЕРОВ.. 49 Широко распространён также англоязычный вар
gl ОГЛАВЛЕНИЕ... Лекции ОСНОВНЫЕ ПОНЯТИЯ И КАТЕГОРИЯ ИНФОРМАТИКИ... ЛЕКЦИИ МАТЕМАТИЧЕСКИЕ ОСНОВЫ ИНФОРМАТИКИ СИСТЕМЫ СЧИСЛЕНИЯ...

Лекция первая. ИСТОРИЯ СОЦИОЛОГИИ КАК ОБЛАСТЬ ЗНАНИЯ Лекция вторая. ИЗ КАКИХ ИДЕЙ РОДИЛАСЬ СОЦИОЛОГИЯ: ИНТЕЛЛЕКТУАЛЬНЫЕ ИСТОКИ НОВОЙ НАУКИ Лекция третья. СОЦИОЛОГИЯ ОГЮСТА КОНТА ЛЕКЦИИ
Оглавление... ОТ АВТОРА... Лекция первая ИСТОРИЯ СОЦИОЛОГИИ КАК ОБЛАСТЬ ЗНАНИЯ Лекция вторая ИЗ КАКИХ ИДЕЙ РОДИЛАСЬ СОЦИОЛОГИЯ ИНТЕЛЛЕКТУАЛЬНЫЕ ИСТОКИ НОВОЙ НАУКИ...

Конспект лекций по курсу Алгоритмические языки и программирование Основы языка С++
Пермский Государственный технический университет... Кафедра информационных технологий и автоматизированных... Викентьева О Л...

Понятие о языке и речи. Основные функции языка
Понятие о языке и речи Основные функции языка... Понятие об основных и дополнительных формах существования языка Разнообразие... Литературный язык как высшая форма существования национального языка Основные черты литературного языка...

Два объекта истории русского языка: живой язык диалектный и литературный язык
Новые общественные функции приобретает русский язык по мере сложения новой исторической общности советского народа он становится межнациональным... Современный период... Горшкова Хабургаев ИГРЯ...

Модуль 1. Системное обеспечение информационных процессов. Лекция №2. Файловые менеджеры. Программы для обслуживания и настройки компьютера. План лекции. Работа с файловой системой при помощи Проводника. Альтернативные файловые менеджеры Total Commander
Лекция Файловые менеджеры Программы для обслуживания и настройки компьютера... План лекции... Работа с файловой системой при помощи Проводника Альтернативные файловые менеджеры Total Commander Far...

0.036
Хотите получать на электронную почту самые свежие новости?
Education Insider Sample
Подпишитесь на Нашу рассылку
Наша политика приватности обеспечивает 100% безопасность и анонимность Ваших E-Mail
Реклама
Соответствующий теме материал
  • Похожее
  • По категориям
  • По работам