🗊 Презентация Технология программирования. Функции и структуры

Нажмите для полного просмотра!
Технология программирования. Функции и структуры, слайд №1 Технология программирования. Функции и структуры, слайд №2 Технология программирования. Функции и структуры, слайд №3 Технология программирования. Функции и структуры, слайд №4 Технология программирования. Функции и структуры, слайд №5 Технология программирования. Функции и структуры, слайд №6 Технология программирования. Функции и структуры, слайд №7 Технология программирования. Функции и структуры, слайд №8 Технология программирования. Функции и структуры, слайд №9 Технология программирования. Функции и структуры, слайд №10 Технология программирования. Функции и структуры, слайд №11 Технология программирования. Функции и структуры, слайд №12 Технология программирования. Функции и структуры, слайд №13 Технология программирования. Функции и структуры, слайд №14 Технология программирования. Функции и структуры, слайд №15 Технология программирования. Функции и структуры, слайд №16 Технология программирования. Функции и структуры, слайд №17 Технология программирования. Функции и структуры, слайд №18 Технология программирования. Функции и структуры, слайд №19 Технология программирования. Функции и структуры, слайд №20 Технология программирования. Функции и структуры, слайд №21 Технология программирования. Функции и структуры, слайд №22 Технология программирования. Функции и структуры, слайд №23 Технология программирования. Функции и структуры, слайд №24 Технология программирования. Функции и структуры, слайд №25 Технология программирования. Функции и структуры, слайд №26 Технология программирования. Функции и структуры, слайд №27 Технология программирования. Функции и структуры, слайд №28 Технология программирования. Функции и структуры, слайд №29 Технология программирования. Функции и структуры, слайд №30 Технология программирования. Функции и структуры, слайд №31 Технология программирования. Функции и структуры, слайд №32 Технология программирования. Функции и структуры, слайд №33 Технология программирования. Функции и структуры, слайд №34 Технология программирования. Функции и структуры, слайд №35 Технология программирования. Функции и структуры, слайд №36 Технология программирования. Функции и структуры, слайд №37 Технология программирования. Функции и структуры, слайд №38 Технология программирования. Функции и структуры, слайд №39 Технология программирования. Функции и структуры, слайд №40 Технология программирования. Функции и структуры, слайд №41 Технология программирования. Функции и структуры, слайд №42 Технология программирования. Функции и структуры, слайд №43 Технология программирования. Функции и структуры, слайд №44 Технология программирования. Функции и структуры, слайд №45 Технология программирования. Функции и структуры, слайд №46 Технология программирования. Функции и структуры, слайд №47 Технология программирования. Функции и структуры, слайд №48 Технология программирования. Функции и структуры, слайд №49 Технология программирования. Функции и структуры, слайд №50 Технология программирования. Функции и структуры, слайд №51 Технология программирования. Функции и структуры, слайд №52 Технология программирования. Функции и структуры, слайд №53 Технология программирования. Функции и структуры, слайд №54 Технология программирования. Функции и структуры, слайд №55 Технология программирования. Функции и структуры, слайд №56 Технология программирования. Функции и структуры, слайд №57 Технология программирования. Функции и структуры, слайд №58 Технология программирования. Функции и структуры, слайд №59 Технология программирования. Функции и структуры, слайд №60 Технология программирования. Функции и структуры, слайд №61 Технология программирования. Функции и структуры, слайд №62 Технология программирования. Функции и структуры, слайд №63 Технология программирования. Функции и структуры, слайд №64 Технология программирования. Функции и структуры, слайд №65 Технология программирования. Функции и структуры, слайд №66 Технология программирования. Функции и структуры, слайд №67 Технология программирования. Функции и структуры, слайд №68 Технология программирования. Функции и структуры, слайд №69 Технология программирования. Функции и структуры, слайд №70 Технология программирования. Функции и структуры, слайд №71 Технология программирования. Функции и структуры, слайд №72 Технология программирования. Функции и структуры, слайд №73 Технология программирования. Функции и структуры, слайд №74 Технология программирования. Функции и структуры, слайд №75 Технология программирования. Функции и структуры, слайд №76 Технология программирования. Функции и структуры, слайд №77 Технология программирования. Функции и структуры, слайд №78 Технология программирования. Функции и структуры, слайд №79 Технология программирования. Функции и структуры, слайд №80 Технология программирования. Функции и структуры, слайд №81 Технология программирования. Функции и структуры, слайд №82 Технология программирования. Функции и структуры, слайд №83 Технология программирования. Функции и структуры, слайд №84 Технология программирования. Функции и структуры, слайд №85 Технология программирования. Функции и структуры, слайд №86 Технология программирования. Функции и структуры, слайд №87 Технология программирования. Функции и структуры, слайд №88 Технология программирования. Функции и структуры, слайд №89 Технология программирования. Функции и структуры, слайд №90 Технология программирования. Функции и структуры, слайд №91 Технология программирования. Функции и структуры, слайд №92 Технология программирования. Функции и структуры, слайд №93 Технология программирования. Функции и структуры, слайд №94 Технология программирования. Функции и структуры, слайд №95 Технология программирования. Функции и структуры, слайд №96 Технология программирования. Функции и структуры, слайд №97 Технология программирования. Функции и структуры, слайд №98 Технология программирования. Функции и структуры, слайд №99 Технология программирования. Функции и структуры, слайд №100 Технология программирования. Функции и структуры, слайд №101 Технология программирования. Функции и структуры, слайд №102 Технология программирования. Функции и структуры, слайд №103 Технология программирования. Функции и структуры, слайд №104 Технология программирования. Функции и структуры, слайд №105 Технология программирования. Функции и структуры, слайд №106 Технология программирования. Функции и структуры, слайд №107 Технология программирования. Функции и структуры, слайд №108 Технология программирования. Функции и структуры, слайд №109 Технология программирования. Функции и структуры, слайд №110 Технология программирования. Функции и структуры, слайд №111 Технология программирования. Функции и структуры, слайд №112 Технология программирования. Функции и структуры, слайд №113

Содержание

Вы можете ознакомиться и скачать презентацию на тему Технология программирования. Функции и структуры. Доклад-сообщение содержит 113 слайдов. Презентации для любого класса можно скачать бесплатно. Если материал и наш сайт презентаций Mypresentation Вам понравились – поделитесь им с друзьями с помощью социальных кнопок и добавьте в закладки в своем браузере.

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


Слайд 1


Технология программирования Функции Структуры
Описание слайда:
Технология программирования Функции Структуры

Слайд 2


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

Слайд 3


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

Слайд 4


Функции Использование функций дает следующие преимущества: Экономия памяти кода за счет размещения многократно повторяющихся частей программ в...
Описание слайда:
Функции Использование функций дает следующие преимущества: Экономия памяти кода за счет размещения многократно повторяющихся частей программ в функции. Позволяет работать группе программистов над одной сложной задачей Функции облегчают чтение, внесение изменений и коррекцию ошибок в программе.

Слайд 5


Функции В функциях могут быть описаны собственные константы, типы, переменные. В этом случае они называются локальными. Их область действия...
Описание слайда:
Функции В функциях могут быть описаны собственные константы, типы, переменные. В этом случае они называются локальными. Их область действия распространяется только на те функции, в которых они описаны. Имена локализованных переменных могут совпадать с ранее объявленными внешними именами. В этом случае считается, что локальное имя "закрывает" внешнее и делает его недоступным

Слайд 6


Функции Память под локальные переменные выделяется в момент вызова подпрограммы и освобождается после завершения её выполнения. Доступ к ним возможен...
Описание слайда:
Функции Память под локальные переменные выделяется в момент вызова подпрограммы и освобождается после завершения её выполнения. Доступ к ним возможен только из той подпрограммы, в которой они описаны.

Слайд 7


Функции Общая форма записи функции: () { } Вызов функции производится при помощи оператора вызова функции: ()
Описание слайда:
Функции Общая форма записи функции: () { } Вызов функции производится при помощи оператора вызова функции: ()

Слайд 8


Функции Функции могут возвращать результат выполнения. Если функция не возвращает результат, то в качестве ее типа указывается ключевое слово void. В...
Описание слайда:
Функции Функции могут возвращать результат выполнения. Если функция не возвращает результат, то в качестве ее типа указывается ключевое слово void. В теле функций, возвращающих значение, обязательно должен присутствовать оператор возврата return. После ключевого слова return записывается выражение, значение которого вставится вместо имени функции в точке вызова.

Слайд 9


Пример Найти корни уравнения при помощи методов: половинного деления (дихотомии) хорд касательных (Ньютона) простых итераций
Описание слайда:
Пример Найти корни уравнения при помощи методов: половинного деления (дихотомии) хорд касательных (Ньютона) простых итераций

Слайд 10


Пример
Описание слайда:
Пример

Слайд 11


Пример static double F(double x) { return x * x - Cos(5 * x); }
Описание слайда:
Пример static double F(double x) { return x * x - Cos(5 * x); }

Слайд 12


Метод половинного деления
Описание слайда:
Метод половинного деления

Слайд 13


Метод половинного деления Находим точку c Находим значение F(c) Если F(a)*F(c)
Описание слайда:
Метод половинного деления Находим точку c Находим значение F(c) Если F(a)*F(c)

Слайд 14


Метод половинного деления static double Dichotomy(double a, double b, double e) { double c; do { c = (a + b) / 2; if (F(c) * F(a) < 0) { b = c; }...
Описание слайда:
Метод половинного деления static double Dichotomy(double a, double b, double e) { double c; do { c = (a + b) / 2; if (F(c) * F(a) < 0) { b = c; } else { a = c; } } while (Abs(a - b) >= e); return c; }

Слайд 15


Метод хорд
Описание слайда:
Метод хорд

Слайд 16


Метод хорд Отличается от метода дихотомии тем, что очередное приближение берём не в середине отрезка, а в точке пересечения с осью X прямой,...
Описание слайда:
Метод хорд Отличается от метода дихотомии тем, что очередное приближение берём не в середине отрезка, а в точке пересечения с осью X прямой, соединяющей точки (a, F(a)) и (b, F(b)).

Слайд 17


Метод хорд
Описание слайда:
Метод хорд

Слайд 18


Метод хорд static double Chords(double a, double b, double e) { double c; do { c = a - F(a) / (F(b)-F(a)) * (b - a); if (F(c) * F(a) > 0) { a = c; }...
Описание слайда:
Метод хорд static double Chords(double a, double b, double e) { double c; do { c = a - F(a) / (F(b)-F(a)) * (b - a); if (F(c) * F(a) > 0) { a = c; } else { b = c; } } while (Abs(F(c)) >= e); return c; }

Слайд 19


Метод касательных
Описание слайда:
Метод касательных

Слайд 20


Метод касательных
Описание слайда:
Метод касательных

Слайд 21


Метод касательных static double dF(double x) { return 2 * x + 5 * Sin(5 * x); } static double ddF(double x) { return 2 + 25 * Cos(5 * x); }
Описание слайда:
Метод касательных static double dF(double x) { return 2 * x + 5 * Sin(5 * x); } static double ddF(double x) { return 2 + 25 * Cos(5 * x); }

Слайд 22


Метод касательных static double Tangent(double a, double b, double e) { double c; if (F(a) * ddF(a) > 0) { c = a; } else { c = b; } do { c = c - F(c)...
Описание слайда:
Метод касательных static double Tangent(double a, double b, double e) { double c; if (F(a) * ddF(a) > 0) { c = a; } else { c = b; } do { c = c - F(c) / dF(c); } while (Abs(F(c)) >= e); return c; }

Слайд 23


Метод простой итерации Необходимо записать уравнение в виде x = φ(x), |φ”(x)| < 1 на [a, b] Затем задать начальное приближение x0 и организовать...
Описание слайда:
Метод простой итерации Необходимо записать уравнение в виде x = φ(x), |φ”(x)| < 1 на [a, b] Затем задать начальное приближение x0 и организовать следующую итерацию: xk+1 = φ(xk), k = 0, 1, 2, ... Вычисление прекратить, если |xk+1 – xk| < e

Слайд 24


Метод простой итерации static double Fi(double x) { return Acos(x * x) / 5.0; } static double Iteration(double x, double e) { double x0; do { x0 = x;...
Описание слайда:
Метод простой итерации static double Fi(double x) { return Acos(x * x) / 5.0; } static double Iteration(double x, double e) { double x0; do { x0 = x; x = Fi(x0); } while (Abs(x0 - x) >= e); return x; }

Слайд 25


Результаты static void Main() { var a = 0.2; var b = 0.4; Write("Введите точность: "); var e = double.Parse(ReadLine());...
Описание слайда:
Результаты static void Main() { var a = 0.2; var b = 0.4; Write("Введите точность: "); var e = double.Parse(ReadLine()); WriteLine("Метод половинного деления: " + Dichotomy(a, b, e));

Слайд 26


Результаты WriteLine("Метод хорд: " + Chords(a, b, e)); WriteLine("Метод касательных: " + Tangent(a, b, e));...
Описание слайда:
Результаты WriteLine("Метод хорд: " + Chords(a, b, e)); WriteLine("Метод касательных: " + Tangent(a, b, e)); WriteLine("Метод простой итерации:" + Iteration(a, e)); ReadKey(); }

Слайд 27


Результаты
Описание слайда:
Результаты

Слайд 28


Результаты
Описание слайда:
Результаты

Слайд 29


Вызов функции
Описание слайда:
Вызов функции

Слайд 30


Рекурсия Рекурсия в широком смысле – это определение объекта посредством ссылки на себя. Рекурсия в программировании – это пошаговое разбиение задачи...
Описание слайда:
Рекурсия Рекурсия в широком смысле – это определение объекта посредством ссылки на себя. Рекурсия в программировании – это пошаговое разбиение задачи на подзадачи, подобные исходной. Рекурсивный алгоритм – это алгоритм, в определении которого содержится прямой или косвенный вызов этого же алгоритма.

Слайд 31


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

Слайд 32


Рекурсивное вычисление факториала
Описание слайда:
Рекурсивное вычисление факториала

Слайд 33


Рекурсивное вычисление факториала
Описание слайда:
Рекурсивное вычисление факториала

Слайд 34


Рекурсивное вычисление факториала
Описание слайда:
Рекурсивное вычисление факториала

Слайд 35


Рекурсивное вычисление факториала
Описание слайда:
Рекурсивное вычисление факториала

Слайд 36


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

Слайд 37


Ханойская башня
Описание слайда:
Ханойская башня

Слайд 38


Рекурсивное решение Решаем задачу «перенести башню из n−1 диска на 2-й стержень» Переносим самый большой диск на 3-й стержень Решаем задачу «перенеси...
Описание слайда:
Рекурсивное решение Решаем задачу «перенести башню из n−1 диска на 2-й стержень» Переносим самый большой диск на 3-й стержень Решаем задачу «перенеси башню из n−1 диска на 3-й стержень».

Слайд 39


Ханойская башня static void FindSolution(int amountOfDisks) { MoveDisks(amountOfDisks, 1, 3, 2); }
Описание слайда:
Ханойская башня static void FindSolution(int amountOfDisks) { MoveDisks(amountOfDisks, 1, 3, 2); }

Слайд 40


Ханойская башня static void MoveDisks(int n, int fromPole, int toPole, int intermediatePole) { if (n > 0) { MoveDisks(n - 1, fromPole,...
Описание слайда:
Ханойская башня static void MoveDisks(int n, int fromPole, int toPole, int intermediatePole) { if (n > 0) { MoveDisks(n - 1, fromPole, intermediatePole, toPole); WriteLine("Перенос диска {0} со столба {1} на столб {2}“, n, fromPole, toPole); MoveDisks(n - 1, intermediatePole, toPole, fromPole); } }

Слайд 41


Ханойская башня class Program { static void Main(string[] args) { FindSolution(2); ReadKey(); } }
Описание слайда:
Ханойская башня class Program { static void Main(string[] args) { FindSolution(2); ReadKey(); } }

Слайд 42


Ханойская башня class Program { static void Main(string[] args) { FindSolution(3); ReadKey(); } }
Описание слайда:
Ханойская башня class Program { static void Main(string[] args) { FindSolution(3); ReadKey(); } }

Слайд 43


Ханойская башня
Описание слайда:
Ханойская башня

Слайд 44


Треугольник Серпинского В 1915 году польский математик Вацлав Серпинский придумал занимательный объект, известный как решето Серпинского. Этот...
Описание слайда:
Треугольник Серпинского В 1915 году польский математик Вацлав Серпинский придумал занимательный объект, известный как решето Серпинского. Этот треугольник один из самых ранних известных примеров фракталов. Берётся сплошной равносторонний треугольник, на первом шаге из центра удаляется перевёрнутый треугольник.

Слайд 45


Треугольник Серпинского На втором шаге удаляется три перевёрнутых треугольника из трёх оставшихся треугольников. Продолжая этот процесс, на n-ом шаге...
Описание слайда:
Треугольник Серпинского На втором шаге удаляется три перевёрнутых треугольника из трёх оставшихся треугольников. Продолжая этот процесс, на n-ом шаге удаляем 3n-1 перевёрнутых треугольников из центров 3n-1 оставшихся треугольников. Конца этому процессу не будет, и в треугольнике не останется живого места, но и на части он не распадётся - получится объект состоящий из одних только дырок.

Слайд 46


Треугольник Серпинского
Описание слайда:
Треугольник Серпинского

Слайд 47


Треугольник Серпинского
Описание слайда:
Треугольник Серпинского

Слайд 48


Треугольник Серпинского
Описание слайда:
Треугольник Серпинского

Слайд 49


Треугольник Серпинского
Описание слайда:
Треугольник Серпинского

Слайд 50


Треугольник Серпинского public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Paint(object sender,...
Описание слайда:
Треугольник Серпинского public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Paint(object sender, PaintEventArgs e) { } }

Слайд 51


Треугольник Серпинского private void Form1_Paint(object sender, PaintEventArgs e) { Rectangle bounds = e.ClipRectangle; Point a = new...
Описание слайда:
Треугольник Серпинского private void Form1_Paint(object sender, PaintEventArgs e) { Rectangle bounds = e.ClipRectangle; Point a = new Point(bounds.Width/2, 0); Point b = new Point(0, bounds.Height); Point c = new Point(bounds.Width, bounds.Height); Graphics g = e.Graphics; g.FillPolygon(Brushes.Red, new Point[] { a, b, c }); }

Слайд 52


Треугольник Серпинского private void Form1_Paint(object sender, PaintEventArgs e) { Rectangle bounds = e.ClipRectangle; Point a = new...
Описание слайда:
Треугольник Серпинского private void Form1_Paint(object sender, PaintEventArgs e) { Rectangle bounds = e.ClipRectangle; Point a = new Point(bounds.Width/2, 0); Point b = new Point(0, bounds.Height); Point c = new Point(bounds.Width, bounds.Height); Graphics g = e.Graphics; g.FillPolygon(Brushes.Red, new Point[] { a, b, c }); }

Слайд 53


void Serpinski(Graphics g, Point a, Point b, void Serpinski(Graphics g, Point a, Point b, Point c, int n) { if (n > 0) { Point newA = Center(a, b);...
Описание слайда:
void Serpinski(Graphics g, Point a, Point b, void Serpinski(Graphics g, Point a, Point b, Point c, int n) { if (n > 0) { Point newA = Center(a, b); Point newB = Center(b, c); Point newC = Center(c, a); g.FillPolygon(Brushes.White, new Point[] { newA, newB, newC }); Serpinski(g, a, newA, newC, n - 1); Serpinski(g, newA, b, newB, n - 1); Serpinski(g, newC, newB, c, n - 1); } }

Слайд 54


Треугольник Серпинского Point Center(Point a, Point b) { return new Point( (a.X + b.X)/2, (a.Y + b.Y)/2 ); }
Описание слайда:
Треугольник Серпинского Point Center(Point a, Point b) { return new Point( (a.X + b.X)/2, (a.Y + b.Y)/2 ); }

Слайд 55


private void Form1_Paint(object sender, PaintEventArgs e) private void Form1_Paint(object sender, PaintEventArgs e) { Rectangle bounds =...
Описание слайда:
private void Form1_Paint(object sender, PaintEventArgs e) private void Form1_Paint(object sender, PaintEventArgs e) { Rectangle bounds = e.ClipRectangle; Point a = new Point(bounds.Width/2, 0); Point b = new Point(0, bounds.Height); Point c = new Point(bounds.Width, bounds.Height); Graphics g = e.Graphics; g.FillPolygon(Brushes.Red, new Point[] { a, b, c }); Serpinski(g, a, b, c, 5); }

Слайд 56


Треугольник Серпинского
Описание слайда:
Треугольник Серпинского

Слайд 57


Значения параметров по умолчанию У функции может быть больше параметров, чем в самых простых и наиболее часто используемых случаях
Описание слайда:
Значения параметров по умолчанию У функции может быть больше параметров, чем в самых простых и наиболее часто используемых случаях

Слайд 58


Значения параметров по умолчанию
Описание слайда:
Значения параметров по умолчанию

Слайд 59


Значения параметров по умолчанию
Описание слайда:
Значения параметров по умолчанию

Слайд 60


Значения параметров по умолчанию
Описание слайда:
Значения параметров по умолчанию

Слайд 61


Значения параметров по умолчанию Параметры по умолчанию должны идти в конце функции:
Описание слайда:
Значения параметров по умолчанию Параметры по умолчанию должны идти в конце функции:

Слайд 62


Значения параметров по умолчанию static int Sum(int x=1, int y=2, int z=3) { return x + y + z; } static void Main(string[] args) { Console.WriteLine(...
Описание слайда:
Значения параметров по умолчанию static int Sum(int x=1, int y=2, int z=3) { return x + y + z; } static void Main(string[] args) { Console.WriteLine( Sum() ); Console.WriteLine( Sum(10) ); Console.WriteLine( Sum(10, 20) ); Console.WriteLine( Sum(z:30) ); Console.WriteLine( Sum(z:30, x:10) ); }

Слайд 63


Значения параметров по умолчанию static int Sum(int x=1, int y=2, int z=3) { return x + y + z; } static void Main(string[] args) { Console.WriteLine(...
Описание слайда:
Значения параметров по умолчанию static int Sum(int x=1, int y=2, int z=3) { return x + y + z; } static void Main(string[] args) { Console.WriteLine( Sum() ); Console.WriteLine( Sum(10) ); Console.WriteLine( Sum(10, 20) ); Console.WriteLine( Sum(z:30) ); Console.WriteLine( Sum(z:30, x:10) ); }

Слайд 64


Перегрузка функций
Описание слайда:
Перегрузка функций

Слайд 65


Перегрузка функций
Описание слайда:
Перегрузка функций

Слайд 66


Перегрузка функций
Описание слайда:
Перегрузка функций

Слайд 67


Перегрузка функций
Описание слайда:
Перегрузка функций

Слайд 68


Перегрузка функций
Описание слайда:
Перегрузка функций

Слайд 69


Перегрузка функций
Описание слайда:
Перегрузка функций

Слайд 70


Перегрузка функций
Описание слайда:
Перегрузка функций

Слайд 71


Перегрузка функций Эквивалентная запись при помощи перегрузки:
Описание слайда:
Перегрузка функций Эквивалентная запись при помощи перегрузки:

Слайд 72


Работа со структурами Рассмотрим на примере простой программы по работе с адресами Функции программы: Чтение входных данных Хранение данных Вывод...
Описание слайда:
Работа со структурами Рассмотрим на примере простой программы по работе с адресами Функции программы: Чтение входных данных Хранение данных Вывод данных

Слайд 73


Пример: почтовый адрес
Описание слайда:
Пример: почтовый адрес

Слайд 74


Пример: почтовый адрес
Описание слайда:
Пример: почтовый адрес

Слайд 75


Пример: почтовый адрес
Описание слайда:
Пример: почтовый адрес

Слайд 76


Пример: почтовый адрес
Описание слайда:
Пример: почтовый адрес

Слайд 77


Пример: почтовый адрес
Описание слайда:
Пример: почтовый адрес

Слайд 78


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

Слайд 79


Переместим часть кода в функции (вывод)
Описание слайда:
Переместим часть кода в функции (вывод)

Слайд 80


Переместим часть кода в функции (вывод)
Описание слайда:
Переместим часть кода в функции (вывод)

Слайд 81


Переместим часть кода в функции (вывод)
Описание слайда:
Переместим часть кода в функции (вывод)

Слайд 82


Попытаемся аналогичным образом создать функцию чтения данных
Описание слайда:
Попытаемся аналогичным образом создать функцию чтения данных

Слайд 83


Переместим часть кода в функции (ввод)
Описание слайда:
Переместим часть кода в функции (ввод)

Слайд 84


Переместим часть кода в функции (ввод)
Описание слайда:
Переместим часть кода в функции (ввод)

Слайд 85


Ошибки компиляции
Описание слайда:
Ошибки компиляции

Слайд 86


Ошибки компиляции error CS0165: Use of unassigned local variable 'name' error CS0165: Use of unassigned local variable 'town' error CS0165: Use of...
Описание слайда:
Ошибки компиляции error CS0165: Use of unassigned local variable 'name' error CS0165: Use of unassigned local variable 'town' error CS0165: Use of unassigned local variable 'street' error CS0165: Use of unassigned local variable 'number' error CS0165: Use of unassigned local variable 'zip' В отличие от С++, компилятор C# считает использование неинициализированных переменных ошибкой

Слайд 87


Ошибки компиляции В С++ мы получали ошибку во время выполнения программы:
Описание слайда:
Ошибки компиляции В С++ мы получали ошибку во время выполнения программы:

Слайд 88


Ошибки компиляции Проблема решалась при помощи указателей:
Описание слайда:
Ошибки компиляции Проблема решалась при помощи указателей:

Слайд 89


В C# указатели можно использовать только в режиме неуправляемого кода В безопасном режиме все немного сложнее
Описание слайда:
В C# указатели можно использовать только в режиме неуправляемого кода В безопасном режиме все немного сложнее

Слайд 90


Типы данных C# Система типов языка C# включает следующие категории: Указатели Ссылочные типы Типы значений Две последние категории рассмотрим более...
Описание слайда:
Типы данных C# Система типов языка C# включает следующие категории: Указатели Ссылочные типы Типы значений Две последние категории рассмотрим более подробно

Слайд 91


Ссылочные типы Переменные ссылочных типов хранят ссылки на фактические данные. Ссылочными типами являются: Классы (class) Делегаты (delegate)...
Описание слайда:
Ссылочные типы Переменные ссылочных типов хранят ссылки на фактические данные. Ссылочными типами являются: Классы (class) Делегаты (delegate) Интерфейсы (interface) Строки (string) Массивы

Слайд 92


Типы значений Тип значений хранит свое содержимое в памяти, выделенной в стеке. Типы значений состоят из двух основных категорий : Структуры (struct)...
Описание слайда:
Типы значений Тип значений хранит свое содержимое в памяти, выделенной в стеке. Типы значений состоят из двух основных категорий : Структуры (struct) Перечисления (enum)

Слайд 93


Все базовые типы C#, за исключением string, представляют собой типы значений
Описание слайда:
Все базовые типы C#, за исключением string, представляют собой типы значений

Слайд 94


Особенности типов значений Переменные, основанные на типах значений, содержат непосредственно значения. При присвоении переменной одного типа...
Описание слайда:
Особенности типов значений Переменные, основанные на типах значений, содержат непосредственно значения. При присвоении переменной одного типа значений другому создается копия присваиваемого значения В этом заключается отличие от переменных ссылочного типа, при присвоении которых копируются ссылки на объекты, но не сами объекты

Слайд 95


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

Слайд 96


Ключевые слова out и ref Для передачи типов значений по ссылке в безопасном режиме были введены специальные ключевые слова out и ref
Описание слайда:
Ключевые слова out и ref Для передачи типов значений по ссылке в безопасном режиме были введены специальные ключевые слова out и ref

Слайд 97


Отличие out от ref ref указывает компилятору, что передаваемый объект был инициализирован до вызова функции. out сообщает, что переменная будет...
Описание слайда:
Отличие out от ref ref указывает компилятору, что передаваемый объект был инициализирован до вызова функции. out сообщает, что переменная будет инициализированна внутри функции. Т.е. ref обеспечивает передачу значения в обе стороны, а out только из функции наружу.

Слайд 98


Отличие out от ref: ошибка при использовании out
Описание слайда:
Отличие out от ref: ошибка при использовании out

Слайд 99


Итог: функция ReadAddress
Описание слайда:
Итог: функция ReadAddress

Слайд 100


При вызове функции, по аналогии с С++, перед каждой переменной указываем ключевое слово out
Описание слайда:
При вызове функции, по аналогии с С++, перед каждой переменной указываем ключевое слово out

Слайд 101


Итог
Описание слайда:
Итог

Слайд 102


Результат не изменился
Описание слайда:
Результат не изменился

Слайд 103


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

Слайд 104


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

Слайд 105


Отличия от С++ Область видимости по умолчанию – private Нельзя объявлять конструкторы без параметорв Инициализируется значениями по умолчанию Нельзя...
Описание слайда:
Отличия от С++ Область видимости по умолчанию – private Нельзя объявлять конструкторы без параметорв Инициализируется значениями по умолчанию Нельзя использовать наследование

Слайд 106


Доступ к полям при помощи оператора (.)
Описание слайда:
Доступ к полям при помощи оператора (.)

Слайд 107


Создание переменной структуры
Описание слайда:
Создание переменной структуры

Слайд 108


Инициализация структуры (1)
Описание слайда:
Инициализация структуры (1)

Слайд 109


Инициализация структуры (2)
Описание слайда:
Инициализация структуры (2)

Слайд 110


Инициализация структуры (3)
Описание слайда:
Инициализация структуры (3)

Слайд 111


Инициализация структуры (3)
Описание слайда:
Инициализация структуры (3)

Слайд 112


Копирование структур
Описание слайда:
Копирование структур

Слайд 113


Массивы структур
Описание слайда:
Массивы структур



Похожие презентации
Mypresentation.ru
Загрузить презентацию