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


Основы программирования

Содержание

Цели и задачи курса

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

Слайд 1Основы программирования

Ст. преп.
каф. ПОВТ
Масленников Алексей Александрович
Лекция № 1
Введение в

программирование

Основы программированияСт. преп.каф. ПОВТМасленников Алексей АлександровичЛекция № 1 Введение в программирование

Слайд 2Цели и задачи курса

Цели и задачи курса

Слайд 3Книги

Книги

Слайд 4История появления языка СИ
Язык - Си (C) появился в 1969г.

Он родился в «Белл телефон лабораторис» (Bell Telefon Laboratoris) (научно-исследовательской

фирме, принадлежащей корпорации «Американ телефон энд телеграф» (American Telephone and Telegraph), AT&T, и расположенной в Мюррей-хилл, шт. Нью-Джерси) в атмосфере, которую один из участников разработки определил как:

«благотворное пренебрежение»
История появления языка СИЯзык - Си (C) появился в 1969г. Он родился в «Белл телефон лабораторис» (Bell

Слайд 5История появления языка СИ
Никто из руководителей компании не заказывал нового

языка, на него не было особого спроса. Язык Си возник

лишь как результат дружеского соревнования внутри небольшой группы программистов лаборатории, искавших язык, пригодный для экспериментов с новым программным обеспечением. «Не было ни проектов, ни спецификаций, ни требований, - вспоминал член группы, - почти все родилось просто из обсуждений».
История появления языка СИНикто из руководителей компании не заказывал нового языка, на него не было особого спроса.

Слайд 6История появления языка СИ
Название «Си» (C) появилось так же случайно,

как и сам язык. Он оказался преемником ранее созданного языка

для внутреннего использования, получившего название Би (B) (B, C - вторая и третья буквы латинского алфавита). Отчасти язык Би основывался на созданном в Кембриджском университете языке БКПЛ (BCPL, от Basic Combined Programming Language - базовый комбинированный язык программирования), который в свою очередь был потомком Алгола-60.
История появления языка СИНазвание «Си» (C) появилось так же случайно, как и сам язык. Он оказался преемником

Слайд 7Что такое язык программирования ?
Языки программирования — это всегда некоторые

модели (виртуальные вычислительные машины), позволяющие наиболее эффективно использовать возможности вычислительных

средств, существенные для конкретных областей применения.

Что такое язык программирования ?Языки программирования — это всегда некоторые модели (виртуальные вычислительные машины), позволяющие наиболее эффективно

Слайд 8Что такое язык программирования ?
Фактически, при написании программ ориентируются не

на вычислительную машину как таковую, а на некоторую абстрактную модель

вычислительного устройства.

Что такое язык программирования ?Фактически, при написании программ ориентируются не на вычислительную машину как таковую, а на

Слайд 9Абстракция
Сложность задач, которые возможно решить с применением тех или иных

концепций проектирования и выражающих их языков, непосредственно связана с
уровнем

абстракции
как при постановке задачи, так и в ходе ее решения.

АбстракцияСложность задач, которые возможно решить с применением тех или иных концепций проектирования и выражающих их языков, непосредственно

Слайд 10Абстракция
Абстракция – это самое мощное интеллектуальное средство познания, имеющееся в

распоряжении человека. Со способностью к абстракции связана и способность человека

к творчеству. Обнаружение общих абстракций и механизмов значительно облегчает понимание сложных систем.

АбстракцияАбстракция – это самое мощное интеллектуальное средство познания, имеющееся в распоряжении человека. Со способностью к абстракции связана

Слайд 11Абстракция
То, как мы опишем лампочку в нашей программе зависит от

наших задач
Вариант 1
Нам важны геометрические размеры лампочки

В таком случае
Лампочка это:
некий

объект, у которого есть размер и координаты положения в пространстве
(оно может быть 2х, 3х мерным)

АбстракцияТо, как мы опишем лампочку в нашей программе зависит от наших задачВариант 1Нам важны геометрические размеры лампочкиВ

Слайд 12Абстракция
То, как мы опишем лампочку в нашей программе зависит от

наших задач
Вариант 2
Нам важны внешние свойства лампочки

В таком случае
Лампочка это:
некий

объект, у которого есть цвет, есть некоторый уровень прочности и т.д.
АбстракцияТо, как мы опишем лампочку в нашей программе зависит от наших задачВариант 2Нам важны внешние свойства лампочкиВ

Слайд 13Языки программирования и парадигмы
Парадигма – набор теорий, стандартов и методов,

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

мира.

Парадигма в программировании – способ концептуализации, который определяет, как следует проводить вычисления, и как работа, выполняемая компьютером, должна быть структурирована и организована.
Языки программирования и парадигмыПарадигма – набор теорий, стандартов и методов, которые совместно представляют собой способ организации научного

Слайд 14Языки программирования и парадигмы

Языки программирования и парадигмы

Слайд 15Языки ассемблера
Языки ассемблера позволяют избежать необходимости программирования в машинном коде,

поэтому ассемблеры являются абстракцией вычислительной машины, для которой были спроектированы.


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

Слайд 16Пример кода на языке ассемблера
.model tiny
.code
org 100h
Begin:
mov ah, 9
mov

dx, offset message
int 21h
ret
message db «Hello World!», 0Dh, 0Ah, ‘$’
end

Begin
Пример кода на языке ассемблера.model tiny.codeorg 100h Begin:mov ah, 9mov dx, offset messageint 21hretmessage db «Hello World!»,

Слайд 17Пример кода на языке ассемблера
.model tiny ;модель памяти
.code ;начало сегмента

кода
org 100h ;отступ для PSP блока
Begin: ;метка начала программы
mov

ah, 9 ;загружаем в регистр ah значение 9
mov dx, offset message ; в регистре dx указываем адрес (смешение) сообщения
int 21h ;вызываем прерывание DOS 21
ret ; возврашаем управление
message db «Hello World!», 0Dh, 0Ah, ‘$’ ;само сообщение
end Begin;конец программы
Пример кода на языке ассемблера.model tiny ;модель памяти.code ;начало сегмента кодаorg 100h ;отступ для PSP блока Begin:

Слайд 18Языки процедурного программирования
Языки, основанные на методологии процедурного программирования, можно считать

абстракциями ассемблеров.
Таким образом, язык программирования — не только выразитель концепций

проектирования, но и уровня абстракции при представлении задач и технических средств, используемых для решения этих задач. Развитие языков программирования — это, прежде всего, развитие абстрактных моделей, облегчающих и систематизирующих проектирование.
Языки процедурного программированияЯзыки, основанные на методологии процедурного программирования, можно считать абстракциями ассемблеров.Таким образом, язык программирования — не

Слайд 19Языки процедурного программирования
Методология структурного императивного программирования воплощает подход, характеризующийся принципом

последовательного изменения состояния вычислителя пошаговым образом с поддержкой концепции структурного

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

Слайд 20Языки процедурного программирования
Примеры языков-выразителей концепций структурного императивного программирования: Fortran, Pascal,

С, PL/1. Эти языки основаны на парадигме процедурного программирования, основанной

на представлении программы в виде иерархии процедур и функций.
Языки процедурного программированияПримеры языков-выразителей концепций структурного императивного программирования: Fortran, Pascal, С, PL/1. Эти языки основаны на парадигме

Слайд 21Пример программы на языке C
#include
int main()
{
printf("Hello, world!");

getchar();
return

0;
}
Пример программы на языке C#include int main(){ printf(

Слайд 22Пример программы на языке C
#include //

Подключение библиотеки ввода-вывода
int main()

// Главная функция
{
printf("Hello, world!"); // Вывод сообщения
getchar(); // Задержка окна консоли
return 0;
}
Пример программы на языке C#include    // Подключение библиотеки ввода-выводаint main()

Слайд 23Пример программы на языке Pascal
Program Hello_World;
Begin
Write('Hello, World!');
End.

Пример программы на языке PascalProgram Hello_World; BeginWrite('Hello, World!');End.

Слайд 24Языки процедурного программирования
Основная проблема процедурных языков: достигаемый ими уровень абстракции

все еще требует от программиста мышления в большей мере в

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

Слайд 25Развитие языков программирования
Развитие абстрактных моделей не всегда означало переход на

более высокие уровни абстракции представления вычислительной машины как исполнительного устройства.

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

Слайд 26Развитие языков программирования
Примерами альтернатив моделированию вычислительной машины могут служить концепции,

реализованные в языках функционального и логического программирования.

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

Слайд 27Развитие языков программирования
Пример языка функционального программирования – язык LISP, основанный

на модели, характеризуемой постулатом "все задачи, в конечном счете, могут

быть сведены к работе со списками".
Развитие языков программированияПример языка функционального программирования – язык LISP, основанный на модели, характеризуемой постулатом

Слайд 28Пример программы на языке LISP
//Это JAVA ) это не LISP

)
public static int getMaxValue(int[] numbers) {
int answer = numbers[0];
for (int

i = 1;i < numbers.length; i++){
if (numbers[i] > answer) answer = numbers[i];
}
return answer;
}

//Это тоже самое на LISP
(defun get-max-value (list)
(let ((ans (first list)))
(do ((i 1 (1+ i)))
((>= i (length list)) ans)
(when (> (nth i list) ans)
(setf ans (nth i list))))))

Пример программы на языке LISP//Это JAVA ) это не LISP )public static int getMaxValue(int[] numbers) {	int answer

Слайд 29Развитие языков программирования
Пример языка логического программирования – язык Prolog, основывающийся

на принципе: "все задачи могут быть сведены к цепочке логических

рассуждений". Эти языки нашли применение в задачах искусственного интеллекта и прикладной математики.
Развитие языков программированияПример языка логического программирования – язык Prolog, основывающийся на принципе:

Слайд 30Пример программы на языке Prolog
domains
list=integer*

predicates
max_list(list, integer, integer)
min_list(list,

integer)
clauses
max_list ([],M,M).
max_list ([H|T],N,M):- H>N, max_list(T,H,M).
max_list ([H|T],N,M):- H<=N, max_list(T,N,M).
min_list ([H|[]],H).
min_list ([H|T],M):- min_list(T,M1), H>M1, M=H.
min_list ([H|T],M):- min_list(T,M1), H<=M1, M=M1.

goal
L=[1,5,3,-6,8,-4],L=[H|T],max_list(T,H,Max), min_list([4,3,-8,6],Min)
Пример программы на языке Prolog domains   list=integer*   predicates   max_list(list, integer, integer)

Слайд 31Объектно-ориентированные языки программирования
Сущность объектно-ориентированного подхода:
1) Он предоставляет разработчику инструмент, позволяющий

описать задачу и существенную часть реализации проекта в терминах предметной

области, а не компьютерной модели. ОО-анализ начинается с исследования предметов реального мира, являющихся частью решаемой задачи
Объектно-ориентированные языки программированияСущность объектно-ориентированного подхода:1) Он предоставляет разработчику инструмент, позволяющий описать задачу и существенную часть реализации проекта

Слайд 32Объектно-ориентированные языки программирования
Сущность объектно-ориентированного подхода:
2) ОО-проектирование предоставляет разработчикам гибкий мощный

универсальный инструмент, не связанный с каким-то определенным классом задач. Объектный

подход зарекомендовал себя как унифицирующая идея всей компьютерной науки, применимая не только в программировании, но также в проектировании интерфейса пользователя, баз данных и архитектуры компьютеров.
Объектно-ориентированные языки программированияСущность объектно-ориентированного подхода:2) ОО-проектирование предоставляет разработчикам гибкий мощный универсальный инструмент, не связанный с каким-то определенным

Слайд 33Пример программы на языке C#
using System;        
namespace oops    
{    
    class customer    
    {    
        public int CustID;    
        public string Name;    
        public string Address;        
        customer()    
        {    
            CustID=1101;    
            Name="Tom";    
            Address="USA";    
        }         public void displayData()    
        {    
            Console.WriteLine("Customer="+CustID);    
            Console.WriteLine("Name="+Name);    
            Console.WriteLine("Address="+Address);      
        }    
    }    
}    

Пример программы на языке C#using System;        namespace oops    {        class customer        {            public int CustID;            public string Name;            public string Address;                customer()            {                CustID=1101;                Name=

Слайд 34Пример программы на языке C#
class customer    
{    
       static void Main(string[] args)    
    {    
           customer obj = new customer();    
  
           obj.displayData();    
  
           Console.WriteLine(obj.CustID);    
        Console.WriteLine(obj.Name);       
        Console.WriteLine(obj.Address);       
    }    
}   

Пример программы на языке C#class customer    {           static void Main(string[] args)        {               customer obj = new customer();                 obj.displayData();                 Console.WriteLine(obj.CustID);            Console.WriteLine(obj.Name);               Console.WriteLine(obj.Address);           }    }   

Слайд 35В чем же отличие процедурных и объектных языков
using System;
namespace ConsoleApplication
{

public class lamp
{
public

double x { get; set; }
public double y { get; set; }
public string color { get; set; }
private bool enabled = false;
public lamp(string color,double xPos,double yPos)
{
this.color = color;
x = xPos;
y = yPos;
}
public void TurnOn()
{
enabled = true;
}
public void TurnOf()
{
enabled = false;
} }}

Приведем пример описания лампочки на ОО языке C#

class Program
{
static void Main(string[] args)
{
lamp mylamp = new lamp("red", 10, 20);
mylamp.TurnOn();
mylamp.TurnOf();
}
}

В чем же отличие процедурных и объектных языковusing System;namespace ConsoleApplication{  public class lamp  {

Слайд 36В чем же отличие процедурных и объектных языков
#include
struct lamp{double

x;
double y;
char color[10];
bool enabled = false;};
void TurnOn(struct lamp *lRef) {
lRef->

enabled =true;
}
void TurnOf(struct lamp *lRef) {
lRef-> enabled =false;
}

int main() {
lamp mylamp;
mylamp.x=10;
mylamp.y=20;
mylamp.color=“red”;
TurnOn(&mylamp);
TurnOff(&mylamp);
}

Приведем пример описания лампочки на процедурном языке C

В чем же отличие процедурных и объектных языков#include struct lamp{double x;	double y;	char color[10];	bool enabled = false;};void TurnOn(struct

Слайд 37Переменные
Мы все время говорим «переменная», так что же это такое

?
Фундаментальные объекты данных, с которыми работает программа – это переменные

и константы. Переменная имеет имя, тип и текущее значение. Имя для переменной выбирается программистом произвольно с учетом следующих ограничений:
ПеременныеМы все время говорим «переменная», так что же это такое ?Фундаментальные объекты данных, с которыми работает программа

Слайд 38Переменные
int k;
Каждая переменная относится к определенному типу данных.
Такая принадлежность

устанавливается при объявлении переменной.
Все переменные одного типа данных имеют одинаковый

размер, одинаковое «внутреннее устройство» и одинаковый набор операций, которые можно к ним применить.
Переменныеint k;Каждая переменная относится к определенному типу данных. Такая принадлежность устанавливается при объявлении переменной.Все переменные одного типа

Слайд 39Типы данных
В языке Си определены следующие основные типы данных:

Типы данныхВ языке Си определены следующие основные типы данных:

Слайд 40Типы данных
Пусть для конкретной вычислительной платформы переменные типа int имеют

длину 4 байта и текущее значение некоторой переменной таково:


Тогда, если

считать эти байты значением переменной типа signed int, будем иметь число -1. Если же в этой области памяти хранится переменная типа unsigned int, её значением будет 232-1 = 4 294 967 295.


Типы данныхПусть для конкретной вычислительной платформы переменные типа int имеют длину 4 байта и текущее значение некоторой

Слайд 41Типы данных

Типы данных

Слайд 42Числовые константы
Константы, в отличие от переменных, не имеют имён. Запись

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

константы. Для каждого типа данных существуют свои правила записи констант.

Целочисленные константы записывают, как правило, с помощью десятичных цифр, хотя возможна их запись в восьмеричной и шестнадцатеричной системах:
123, 67543, 037, 07777, 0xabf7, 0XFFFF

Допускается использование суффиксов l или L (long), а также u или U (unsigned):
123456789L, 0XFUL (это просто число 15).

Числовые константыКонстанты, в отличие от переменных, не имеют имён. Запись константы в виде цепочки символов одновременно является

Слайд 43Числовые константы
Вещественные константы содержат десятичную точку, а также степенную часть

(экспоненту) или и то, и другое:
1234.5, 1e-2, 12.3E1, …

Такие константы

имеют тип double, однако имеется возможность записи констант float и long double :
1.2f, 23.45F, 1e-1L

Числовые константыВещественные константы содержат десятичную точку, а также степенную часть (экспоненту) или и то, и другое:1234.5, 1e-2,

Слайд 44Символьные константы
Символьная константа – это целое число, записываемое в форме

одиночного символа в одинарных кавычках: 'x', '0' и т.п.
Значением символьной

константы является числовое значение кода символа.

Например, значением константы '0' является число 48. Символьные константы могут участвовать в арифметических операциях.
Символьные константыСимвольная константа – это целое число, записываемое в форме одиночного символа в одинарных кавычках: 'x', '0'

Слайд 45Символьные константы
С помощью символьных констант реализованы управляющие последовательности

Символьные константыС помощью символьных констант реализованы управляющие последовательности

Слайд 46Строковые константы
Строковая константа – это последовательность из нескольких символов, заключенная

в кавычки:
"Это строка", "" (а это – пустая строка)

Фактически строковая

константа является массивом символов (массивом типа char), причем в конце массива автоматически добавляется нулевой байт (признак конца строки) и поэтому длина массива всегда на 1 больше размера строки. Пустая строка имеет нулевую длину и занимает в памяти 1 байт!

Нельзя путать символьные константы и строковые константы из одного символа. Например: 'x' и "x" – это совершенно разные вещи!

Строковые константыСтроковая константа – это последовательность из нескольких символов, заключенная в кавычки:

Слайд 47Константы перечислимого типа
Средства языка Си позволяют программисту создавать собственные типы

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

значений должно быть задано некоторое имя, которое будет играть роль константы данного типа.



Такие типы называются перечислениями.
Константы перечислимого типаСредства языка Си позволяют программисту создавать собственные типы данных с фиксированным множеством целочисленных значений, причем

Слайд 48Константы перечислимого типа







Можно описывать переменные перечислимого типа:


enum boolean {FALSE, TRUE};
enum

months {JAN=1, FEB, MAR, APR, MAY, JUN, JUL, AUG, SEP,

OCT, NOV, DEC};
enum escapes {BELL=‘\a’, BACKSPACE=‘\b’, TAB=‘\t’, NEWLINE=‘\n’, RETURN=‘\r’};

enum months x;

Константы перечислимого типаМожно описывать переменные перечислимого типа:enum boolean {FALSE, TRUE};enum months {JAN=1, FEB, MAR, APR, MAY, JUN,

Слайд 49Объявления переменных
Любая переменная в программе на языке Си должна быть

объявлена до первого обращения к ней. При объявлении переменной указывается

её тип, имя и, возможно, начальное значение. Переменные одно типа можно объявлять списком:

int lower, upper, step;
char c, line[1000];
char esc = ‘\\’;
int limit = MAXLINE + 1;
float eps = 1.0e-05;

Объявления переменныхЛюбая переменная в программе на языке Си должна быть объявлена до первого обращения к ней. При

Слайд 50Объявления переменных
К объявлению любой переменной можно добавить модификатор const, который

придаст этой переменной свойство “read only” (только для чтения). Попытка

присвоить такой переменной (или элементу массива) нового значения вызовет ошибку компиляции:

const double e = 2.71828182845905;
const char msg[] = "Warning: ";

Объявления переменныхК объявлению любой переменной можно добавить модификатор const, который придаст этой переменной свойство “read only” (только

Слайд 51Функция main
В программе обязательно должна присутствовать в точности одна функция

с именем main («главная» функция), т.к. запуск программы на выполнение

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

#include
#include

int main(int argc, char *argv[]) {
return 0;
}

Функция mainВ программе обязательно должна присутствовать в точности одна функция с именем main («главная» функция), т.к. запуск

Слайд 52Функция main
Функция main всегда имеет тип возвращаемого значения int, через

это значение ОС уведомляется об успешности или не успешности завершения

программы (т.н. «код завершения»). А т.к. int подразумевается «по умолчанию», то тип возвращаемого значения для main часто не указывают

#include
#include

int main(int argc, char *argv[]) {
return 0;
}

Функция mainФункция main всегда имеет тип возвращаемого значения int, через это значение ОС уведомляется об успешности или

Слайд 53Функция main
Существует две формы main:
без аргументов – main() и


с аргументами – main(int argc, char *argv[])
Вторая форма main позволяет

при вызове программы из командной строки передать в нее произвольное количество строковых аргументов.

#include
#include

int main(int argc, char *argv[]) {
return 0;
}

Функция mainСуществует две формы main: 	без аргументов – main() и 	с аргументами – main(int argc, char *argv[])Вторая

Слайд 54Вывод на консоль
Используется функция
printf
  Прототип:  int printf(char *format, arg list ...) --  выводит

в стандартный поток вывода stdout список аргументов согласно специальной форматной строке. Возвращает

число напечатанных символов. 

Вывод на консольИспользуется функцияprintf  Прототип:  int printf(char *format, arg list ...) --  выводит в стандартный поток вывода stdout список аргументов

Слайд 55Вывод на консоль

Вывод на консоль

Слайд 56Вывод на консоль
Между % и форматной буквой мы можем поставить:

-

(знак минус) -- выравнять влево
целое число -- ширина поля.
m.d --

m - ширина поля, d - число точек после запятой или число символов в строке.

  printf("%-2.3f\n",17.23478);
//Вывод на экран будет: 
          17.235 //и: 
          printf("VAT=17.5%%\n"); //выводит: 
          VAT=17.5%

Вывод на консольМежду % и форматной буквой мы можем поставить:- (знак минус) -- выравнять влевоцелое число --

Слайд 57Ввод из консоли
scanf

Эта функция определена следующим образом:
int

scanf(char *format, args....) -- читает из stdin и кладет прочитанные

данные по адресам, указанным в списке args. Возращает число прочитанных данных.
Форматная строка подобна строке для printf
В scanf необходимо передавать адрес переменной или указатель на нее.
scanf("%d",&i);
Мы можем передать также имя массива или строки, т.к, это и будет адресом начала массива или строки.

int n;
scanf("%d",&n);
char string[80]; scanf("%s",string);

Ввод из консолиscanfЭта функция определена следующим образом:  int scanf(char *format, args....) -- читает из stdin и

Слайд 58В общем виде структура программы C
Объявление глобальных переменных
int main(список параметров)
{

последовательность операторов
}
тип_возвращаемого_значения f1(список п
{
последовательность операторов
}
тип_возвращаемого_значения f2(список п
{
последовательность операторов
}
.
.
.
тип_возвращаемого_значения

fN(список п
{
последовательность операторов
}

Объявление глобальных переменных
int main(список параметров)
{
последовательность операторов
}
тип_возвращаемого_значения f1(список п
{
последовательность операторов
}
тип_возвращаемого_значения f2(список п
{
последовательность операторов
}
.
.
.
тип_возвращаемого_значения fN(список п
{
последовательность операторов
}

В общем виде структура программы CОбъявление глобальных переменныхint main(список параметров){ последовательность операторов}тип_возвращаемого_значения f1(список п{ последовательность операторов}тип_возвращаемого_значения f2(список

Слайд 59В общем виде структура программы C
Любая программа на С состоит

из одной или нескольких функций. Обязательно должна быть определена единственная

главная функция main(), именно с нее всегда начинается выполнение программы. В хорошем исходном тексте программы главная функция всегда содержит операторы, отражающие сущность решаемой задачи, чаще всего это вызовы функций. Хотя main() и не является ключевым словом, относиться к нему следует как к ключевому. Например, не следует использовать main как имя переменной, так как это может нарушить работу транслятора.
В общем виде структура программы CЛюбая программа на С состоит из одной или нескольких функций. Обязательно должна

Слайд 60Ключевые слова

Ключевые слова

Слайд 61Базовые типы

Базовые типы

Слайд 62Примеры объявления переменных
char esc = '\\';
int i = 0;


float eps = 1.0e-5;
const double е = 2.71828182845905; //

константа
int i,j,l;
short int si;
unsigned int ui;
double balance, profit, loss;
Примеры объявления переменныхchar esc = '\\'; int i = 0; float eps = 1.0e-5;const double е =

Слайд 63Где объявляются переменные
Объявление переменных может быть расположено в трех местах:

внутри функции, в определении параметров функции и вне всех функций.

Это - места объявлений соответсвенно локальных, формальных параметров функций и глобальных переменных
Где объявляются переменныеОбъявление переменных может быть расположено в трех местах: внутри функции, в определении параметров функции и

Слайд 64Локальные переменные
Переменные, объявленные внутри функций, называются локальными переменными. В некоторых

книгах по С они называются динамическими переменными.

Локальную переменную можно

использовать только внутри блока, в котором она объявлена.

Иными словами, локальная переменная невидима за пределами своего блока. (Блок программы — это описания и инструкции, объединенные в одну конструкцию путем заключения их в фигурные скобки.)
Локальные переменныеПеременные, объявленные внутри функций, называются локальными переменными. В некоторых книгах по С они называются динамическими переменными.

Слайд 65Локальные переменные
Локальные переменные существуют только во время выполнения программного блока,

в котором они объявлены, создаются они при входе в блок,

а разрушаются — при выходе из него. Более того, переменная, объявленная в одном блоке, не имеет никакого отношения к переменной с тем же именем, объявленной в другом блоке.
Локальные переменныеЛокальные переменные существуют только во время выполнения программного блока, в котором они объявлены, создаются они при

Слайд 66Локальные переменные
void func1(void)
{
int x;

x = 10;
}

void func2(void)
{
int

x;

x = -199;
}

Локальные переменныеvoid func1(void){ int x; x = 10;}void func2(void){ int x; x = -199;}

Слайд 67Локальные переменные
void f(void)
{
int t;

scanf("%d%*c", &t);

if(t==1)

{
char s[80]; /* эта переменная создается только

при входе в этот блок */
printf("Введите имя:");
gets(s);
/* некоторые операторы ... */
}

/* здесь переменная s невидима */
}
Локальные переменныеvoid f(void){ int t;  scanf(

Слайд 68Локальные переменные
Если имена переменных, объявленных во внутреннем и внешнем (по

отношению к нему) блоках совпадают, то переменная внутреннего блока "прячет"

(т.е. скрывает, делает невидимой) переменную внешнего блока. Рассмотрим следующий пример:
Локальные переменныеЕсли имена переменных, объявленных во внутреннем и внешнем (по отношению к нему) блоках совпадают, то переменная

Слайд 69Локальные переменные
#include

int main(void)
{
int x;

x = 10;

if(x

== 10) {
int x; /* эта x прячет

внешнюю x */

x = 99;
printf("Внутренняя x: %d\n", x);
}

printf("Внешняя x: %d\n", x);

return 0;
}
Локальные переменные#include int main(void){ int x; x = 10; if(x == 10) {  int x; /*

Слайд 70Локальные переменные
Результат выполнения программы следующий:

Внутренняя х: 99
Внешняя х: 10

Локальные переменныеРезультат выполнения программы следующий:Внутренняя х: 99Внешняя х: 10

Слайд 71Глобальные переменные
В отличие от локальных, глобальные переменные видимы и могут использоваться в

любом месте программы. Они сохраняют свое значение на протяжении всей

работы программы. Чтобы создать глобальную переменную, ее необходимо объявить за пределами функции. Глобальная переменная может быть использована в любом выражении, независимо от того, в каком блоке это выражение используется.
Глобальные переменныеВ отличие от локальных, глобальные переменные видимы и могут использоваться в любом месте программы. Они сохраняют свое значение

Слайд 72Локальные переменные
#include
int count; /* глобальная переменная count */
void func1(void);
void

func2(void);
int main(void)
{
count = 100;
func1();

return 0;
}
void func1(void)
{

int temp;
temp = count;
func2();
printf("count равно %d", count); /* напечатает 100 */
}
void func2(void)
{
int count;

for(count=1; count<10; count++)
putchar('.');
}
Локальные переменные#include int count; /* глобальная переменная count */void func1(void);void func2(void);int main(void){ count = 100; func1(); return

Слайд 73Глобальные переменные

Глобальные переменные

Слайд 74The end
Спасибо за внимание

The end      Спасибо за внимание !

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

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

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

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

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


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

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