ПЯВУ. Основы программирования. Лекция 1. Переменные. Целочисленное деление. Двоичная система счисления

Содержание

Слайд 2

Содержание Вводная часть Анализ простейшей программы Процесс построения программы (компиляция) Виды

Содержание

Вводная часть
Анализ простейшей программы
Процесс построения программы (компиляция)
Виды ошибок
Переменные
Целочисленное деление
Представления программиста о

компьютере
Двоичная система счисления
Слайд 3

Инструменты и средства обучения Учебный материал: Электронные материалы от преподавателей в

Инструменты и средства обучения

Учебный материал:
Электронные материалы от преподавателей в сети;
Шилдт

Г. - C# 4.0 полное руководство.
Visual Studio C#.
Слайд 4

Алгоритмы Язык программирования Модель обучения Среда Модель ЭВМ Представление данных Программирование

Алгоритмы

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

Модель обучения

Среда

Модель ЭВМ

Представление данных

Программирование – основа разработки современной электроники
Цель:

Быстро научиться программировать и понимать программы
“Импрессионизм” => Формализация
Слайд 5

Среда программирования VisualStudio 2013 C# или более поздняя версия Шилдт. Стр.

Среда программирования

VisualStudio 2013 C# или более поздняя версия
Шилдт. Стр. 46 –

“Применение интегрированной среды разработки VisualStudio”. То что понятно.
Язык C#. Потомок C => C++ => C#.
С-подобные языки: Java, PHP, Perl, JavaScript, …
Консольные приложения. Console.
Позволяет сосредоточиться на программировании
Слайд 6

Первая программа на C# using System; using System.Text; namespace MyProgram {

Первая программа на C#

using System;
using System.Text;
namespace MyProgram
{
class Program
{
static

void Main(string[] args)
{
Console.WriteLine("Здравствуй Мир!");
}
}
}
Это Блок
Слайд 7

Простейшая программа на C# Console.WriteLine("Здравствуй Мир!"); // Объект консоль Console.WriteLine("Здравствуй Мир!");

Простейшая программа на C#

Console.WriteLine("Здравствуй Мир!"); // Объект консоль
Console.WriteLine("Здравствуй Мир!"); // Операция

вывода
Console.WriteLine("Здравствуй Мир!"); // Параметр операции
Console.WriteLine("Здравствуй Мир!"); // Строка-литерал
Console.WriteLine("Здравствуй Мир!"); // ; завершает команду
Console.Writeline("Здравствуй Мир!"); // Регистр важен!
Слайд 8

Построение программы Текст программы (программа) Компилятор Выполняемая программа (программа) … Console.WriteLine(…) … Компилятор

Построение программы

Текст программы (программа)
Компилятор
Выполняемая программа (программа)


Console.WriteLine(…)

Компилятор

Слайд 9

Синтаксические ошибки на C# Не там размещена команда! using System; using

Синтаксические ошибки на C# Не там размещена команда!

using System;
using System.Text;
namespace MyProgram
{
class

Program
{
static void Main(string[] args)
{
Console.WriteLine("Здравствуй Мир!");
}
}
}
Слайд 10

Синтаксические ошибки на C# Нет точки с запятой! using System; using

Синтаксические ошибки на C# Нет точки с запятой!

using System;
using System.Text;
namespace MyProgram
{
class

Program
{
static void Main(string[] args)
{
Console.WriteLine("Здравствуй Мир!");
}
}
}
Слайд 11

Синтаксические ошибки на C# Не тот регистр! using System; using System.Text;

Синтаксические ошибки на C# Не тот регистр!

using System;
using System.Text;
namespace MyProgram
{
class Program

{
static void Main(string[] args)
{
Console.Writeline("Здравствуй Мир!");
}
}
}
Слайд 12

Синтаксические ошибки Команды размещены не в том блоке Неполный блок ({)

Синтаксические ошибки

Команды размещены не в том блоке
Неполный блок ({) или лишняя

скобка }
Команда не завершается точкой с запятой
Неправильно набрана команда
…. много других.
Компилятор не сможет построить программу по тексту, содержащему синтаксические ошибки!
Слайд 13

Ошибки времени исполнения Если компилятор построил программу, то она может содержать

Ошибки времени исполнения

Если компилятор построил программу, то она может содержать ошибки!

Пример: (1/0)
Программа будет прерываться, зависать и т.п.
Это Ошибки времени исполнения
Слайд 14

Контрольные вопросы Что такое ‘Блок’ в языке C#? Каковы правила для

Контрольные вопросы

Что такое ‘Блок’ в языке C#? Каковы правила для объявления

блоков в C#?
Где мы будем писать свою часть текста программы на первых занятиях?
Как в языке C# заканчивается команда?
Что означает утверждение: “C# чувствителен к регистру”?
Объясните термины: “Среда разработки”, “Текст программы”, “Компилятор”, “Ошибка компиляции”, “Ошибка времени исполнения программы”.
Как в тексте программы на C# объявить неизменяемые текстовые данные?
Какая команда позволяет вывести текст на консоль?
Слайд 15

Развиваем программу. Переменные. static void Main(string[] args) { Console.WriteLine("Здравствуй Мир!"); }

Развиваем программу. Переменные.

static void Main(string[] args)
{
Console.WriteLine("Здравствуй Мир!");
}
static void Main(string[] args)
{
int

x = 5;
Console.WriteLine(x);
}

5

х

Переменная

Слайд 16

О переменных int x = 5; Console.WriteLine(x); Выдели место (в программе

О переменных

int x = 5;
Console.WriteLine(x);

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

будет называться ‘x’) в памяти под целое число (int) и положи туда 5.
Выведи на консоль значение из памяти, которую назвали ‘x’
Слайд 17

Следствия понимания переменной Нельзя объявить 2 переменных с одинаковым именем Нельзя

Следствия понимания переменной

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

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

5

х

Слайд 18

Форматированный вывод int x = 5; Console.WriteLine(x); >5 Console.WriteLine(“x = {0}”,

Форматированный вывод

int x = 5;
Console.WriteLine(x); >5
Console.WriteLine(“x = {0}”, x);
>x = 5
Два

параметра: текстовый и целочисленный. Разделяются запятыми…
Слайд 19

Развиваем программу дальше int x = 2, y = 3; Console.WriteLine(“{0}

Развиваем программу дальше

int x = 2, y = 3;
Console.WriteLine(“{0} + {1}

= {2}”, x, y, x + y);
параметр - выражение
Можно применять и другие операции над целыми числами: +, -, *, /.

>2 + 3 = 5

Слайд 20

Целочисленное деление 3 / 2 = 1 5 / 3 =

Целочисленное деление

3 / 2 = 1
5 / 3 = 1
Результат деления

целых чисел всегда целый!
3 % 2 = 1
5 % 3 = 2
Остаток от деления (%) то же целый!
(X / N) * N + X % N => X
Слайд 21

Контрольные вопросы Что такое “переменная”? Как объявить переменную целого типа? Как

Контрольные вопросы

Что такое “переменная”?
Как объявить переменную целого типа?
Как задать переменной начальное

значение?
Как объявить несколько целочисленных переменных?
Является ли строка программы: int a = 1; инструкцией для выполнения?
Что изменится, если в строке Console.WriteLine(“{0} + {1} = {2}”, x, y, x + y); заменить первый значок ‘+’на‘-’?
Что измениться, если в строке Console.WriteLine(“{0} + {1} = {2}”, x, y, x + y); заменить второй значок ‘+’на‘-’?
Что изменится, если последний параметр взять в кавычки?
Что изменится, если последний параметр удалить: Console.WriteLine(“{0} + {1} = {2}”, x, y);?
Слайд 22

Операция присваивания x = 5; x = y; x = y

Операция присваивания

x = 5;
x = y;
x = y + 5;

В память

названную x положить 5
В память названную x положить значение из памяти названной y
В память названную x положить сумму значения из памяти названной y и 5
Слайд 23

Присваивание - не равенство x = y; y = x; x

Присваивание - не равенство

x = y; y = x;
x = x

+ 1;
Присваивание – команда!
Слева всегда ТОЛЬКО имя переменной!
Справа – выражение.
Выражение вычисляется и результат помещается в память соответствующую имени переменной.
x <= … так бы было правильнее, но ‘<=’ уже занято!
Слайд 24

Короткий итог Научились создавать простые программы; (Main) Познакомились с некоторыми синтаксическими

Короткий итог

Научились создавать простые программы; (Main)
Познакомились с некоторыми синтаксическими правилами C#;

(регистр, точка с запятой)
Можем выводить сообщения на консоль; (Console.WriteLine)
Познакомились с понятием переменной; (int x = 5;)
Можем объявлять целочисленные переменные, присваивать им значения и выполнять над ними операции; (=, +, -, *, /, %)
Узнали об особенностях деления целых чисел в C#;
Познакомились с операцией присваивания, которая позволяет изменять значение переменной; (x = y; y = x; x = x + 1 – команды)
Познакомились с форматированным выводом; (“{0} + {1} = {2}”)
Понимаем что такое текст программы и как из него получается программа; (компилятор)
Коснулись видов ошибок, возникающих при разработке программ;
Слайд 25

Модель компьютера Процессор, память и шина. Процессор выполняет команды над данными

Модель компьютера

Процессор, память и шина.
Процессор выполняет команды над данными
Память хранит команды

и данные
Шина связывает процессор с памятью

Процессор
Регистры

Память

Шина

Слайд 26

Программа – команды и данные Сложить значение по адресу А1 со

Программа – команды и данные

Сложить значение по адресу А1 со значением

по адресу А2, а результат поместить по адресу А3.
Команда – сложить, А1, А2 и А3 – параметры команды.
Когда команда выполнена, в процессор подгружается следующая команда.
Если не указано иное, команды выполняются последовательно!
Слайд 27

Организация памяти Бит – 0 или 1 Байт – 28 =

Организация памяти

Бит – 0 или 1
Байт – 28 = 256 различных

значений
Адрес в памяти – фактически номер байта
Память может хранить только целые числа!
Все данные команды в памяти компьютера представлены кодами (целыми числами)
199 69 248 1 0 0 0
пример кода команды, которая помещает 1 в одну из переменных.
Слайд 28

Двоичная система счисления Только 2 цифры – 0 и 1 anan-1…a1a0,

Двоичная система счисления

Только 2 цифры – 0 и 1
anan-1…a1a0, где ai

– одна из этих цифр
X = 2n*an+ 2n-1*an-1 + … + 2 * a1 + a0
111 = 4+2+1 = 7
1010 = 8+2 = 10
10101 = 16+4+1 = 21
Слайд 29

Операции в двоичной системе 1+1=10, 10+1=11… Особенности операций в компьютере. 11111111

Операции в двоичной системе

1+1=10, 10+1=11…
Особенности операций в компьютере.
11111111 + 1 =

0
=> 11111111 = -1
В байте могут храниться целые числа от -128 до 127