- •Содержание работы
- •1 Элементы языка с
- •1.1 Символы
- •2 Простые типы данных
- •3 Операции над числовыми данными
- •4 Объявление переменных
- •5 Структура программы на с
- •7 Директива #define
- •9 Библиотека математических функций
- •Содержание работы
- •1 Условный оператор if
- •Пример 1 Поиск наибольшего значения
- •Пример 2 Определение принадлежности точки фигуре
- •2 Составной оператор
- •Пример 3 Проверка условия существования треугольника
- •3 Вложенный оператор
- •Пример 4 Вложенное ветвление
- •4 Оператор выбора switch
- •Содержание работы
- •1 Определение цикла
- •Пример 1 Виды циклов
- •Задание 1
- •2 Оператор цикла for
- •3 Оператор цикла while
- •4 Оператор цикла do while
- •5 Табулирование функций
- •Пример 2 Табулирование непрерывной функции
- •Пример 3 Табулирование сложной функции
- •6 Вычисление конечных сумм и произведений
- •Пример 4 Вычисление суммы
- •Пример 5 Вычисление произведения
- •7 Управляющие конструкции break, continue, return, goto
- •Содержание работы
- •1 Понятие и описание массивов
- •Пример 1 Объявление одномерного массива
- •Пример 2 Объявление двумерного массива
- •2 Одномерные массивы Пример 3 Ввод элементов одномерного массива
- •Пример 4 Нахождение суммы и среднего значения элементов массива
- •Пример 5 Нахождение наибольшего элемента массива и его номера
- •3 Двумерные массивы (матрицы)
- •Пример 6 Суммирование матриц
- •4 Символьные массивы
- •Пример 7 Описание символьного массива
- •Пример 8 Сравнение строк
- •5 Указатели и операции над указателями
- •Пример 9 Описание указателей
- •Пример 10 Операции над указателями
- •Пример 11 Сравнение указателей
- •6 Связь между массивом и указателем
- •Содержание работы
- •1 Модульное программирование
- •2 Объявление функции
- •Пример 1 Объявление функции
- •Задание 1
- •Это важно
- •2 Формальные и фактические параметры функции
- •Задание 3
- •Содержание работы
- •1 Создание класса
- •Пример 1 Объявление класса
- •Задание 1
- •Пример 2 Доступ к членам класса
- •Задание 2
- •2 Полиморфизм
- •Пример 3 Перегрузка функций
- •Задание 3
- •Содержание работы
- •1 Понятие формы. Конструктор форм Windows Forms
- •2 Элементы управления
- •3 Создание приложений с помощью Windows Forms Application Пример 1 Создание простейшего оконного приложения
- •Пример 2 Создание идентификационной формы
- •Пример 3 Изменение параметров MessageBox.Show
- •5 Анализ кода
- •6 Расчетные формы Пример 4 Создание расчетной формы
- •Пример 5 Создание простейшего меню
- •7 Создание оконных приложений на базе mfc
Пример 8 Сравнение строк
Напишем программу, запрашивающую пароль.
#include "stdafx.h"
#include <stdio.h>
#include <conio.h>
#include <string.h>
using namespace System;
int main(array<System::String ^> ^args)
{
char name[50];
char vvod[10], passw[]="d45gtr";
printf("Введите имя\n");
gets(name);
printf("Введите, %s, пароль\n", name);
gets(vvod);
if (strstr(vvod,passw))
printf ("Пароль принят");
else printf("Пароль не принят");
getch();
return 0;
}
Тестирование:
В программе используется функция gets()– функция ввода строки и функция strstr(vvod,passw), которая сравнивает эталонный пароль d45gtr, содержащийся в массиве passw[] с паролем, введенным пользователем.
Задание 8
Выполните программу примера 12. Внесите в исходный код определение длины введенного пароля. Измените программу так, чтобы неверный ввод пароля мог быть выполнен не более трех раз и заканчивался сообщением "Превышено допустимое число ввода".
Задание 9
Проанализируйте коды следующих программ и определите результаты их выполнения.
#include "stdafx.h"
#include <stdio.h>
#include <conio.h>
#include <string.h>
using namespace System;
int main(array<System::String ^> ^args)
{
char a[25],b[5];
gets(a);
gets(b);
printf("%d\n",strcmp("a","a"));
printf("%d\n",strcmp("a","b"));
printf("%d\n",strcmp("b","a"));
getch();
return 0;
}
Тестирование:
#include "stdafx.h"
#include <stdio.h>
#include <conio.h>
#include <string.h>
using namespace System;
int main(array<System::String ^> ^args)
{
char a[25],b[5];
gets(a);
gets(b);
strcat(a,b);
printf ("new string a=");
puts(a);
printf("string b=");
puts(b);
getch();
return 0;
}
Тестирование:
5 Указатели и операции над указателями
Для доступа к данным процессор использует адреса. И когда компилятор обрабатывает оператор определения переменной, например,
int p1=10;
он выделяет память в соответствии с типом (int) и инициализирует ее указанным значением (10). Все обращения в программе к переменной по ее имени (p1) заменяются компилятором на адрес области памяти, в которой хранится значение переменной.
Для хранения адресов областей памяти предназначены указатели.
Формат объявления указателя на объект:
Тип *имя;
Пример 9 Описание указателей
int *p1;
Переменная p1представляет собой указатель на тип int.
Для работы с указателями в С используются две операции: * и ?.
В результате выполнения операции & определяется адрес ячейки памяти, которая соответствует переменной. Если b – имя переменной, то &b – ее адрес.
Например, если задать указателю имя a, то оператор
а=&b;
присваивает адрес b переменной а. Различие между двумя формами записи: а и &b, заключается в том, что а – это переменная, в то время как &b – константа. Предположим, что переменная b хранится в ячейке памяти под номером 2000, а ее значение равно 37. Тогда переменной а будет присвоено значение 2000.
Вторая операция над указателями * – операция косвенной адресации, выполняет действие, обратное по отношению к &.
Оператор а=*b; может быть прочитан так: «а получает значение переменной, расположенной по адресу b».