Циклы for и foreach
Начнем сразу с примера цикла for:
for(int i=1; i<=k; i++){ sum+=i;}
Этот пример подсчитывает сумму чисел от 1 до введенного пользователем числа k. Сумма записывается в переменную sum и выводится на экран.
Очень часто циклы используются для некоторых действий с массивами. Так как нумерация элементов массива идет с нуля, то типичный цикл будет выглядеть так:
int[] a = {-5, 4, 55};
int sum=0;
for(int i=0; i<3; i++){ sum+=a[i];}
пример цикла foreach:
int[] m = {-5, 4, 10};
int sum=0;
foreach(int i in m){ sum+=i;}
Т. е. мы пишем именно тип элементов массива. На самом деле foreach используется не только для массивов, но и для других объектов (например, для хэш-таблиц).
Циклы while бывают двух видов - while и do-while. Оба эти цикла используются, как правило, тогда, когда точно не известно, сколько раз цикл должен выполнится. Например, при вводе пользователем пароля или при подсчете чего-либо с определенной точностью. Оба эти цикла будут выполняться до тех пор, пока условие в круглых скобках после слова while будет истинно. Как только условие станет равным false, выполнение цикла прекращается. while может не выполниться ни одного раза, тогда как do-while по крайней мере один раз выполнится.
|
|
Пример Цикла while (c предусловием)
int i=0;
while (i < 10)
{ Console.WriteLine(i);
++i; };
Пример Цикла do-while (с постусловием)
int i=0;
do
{
Console.WriteLine(i);
++i;
} while (i < 10);
алгоритм выше останавливается в двух случаях: 1) либо i > j и элемент не был найден, 2) либо i <= k <= j и A[k] = искомый элемент.Метод Contains. Возвращает значение, указывающее, равен ли данный экземпляр заданному объекту или значению типа String. Этот метод выполняет сравнение по порядковым номерам (с учетом регистра и без учета языка и региональных параметров). Поиск начинается с первой позиции знака в данной строке и продолжается до последней позиции знака.
using System.Linq;
int[]array = new int[] { 0, 1, 2, 3, 5, 8, 13 };
Console.WriteLine(array.Contains(4)); // False
Файлы классифиц в соответствии с доступом к ним. Файлы с последоват-ым доступом. При таком доступе приходится просматр все записи, предшеств искомой. Файлы с прямым доступом. Записи имеют порядк-ый номер, кот-у ставится в соотв адрес, где хранятся данные этой записи. Доступ к этому адресу прямой.Файлы с доступом по ключу. Поиск производ-ся по содерж 1 из полей записи, назыв-ое ключом записи.
Поиск данных в файле:
using (StreamReader sr = new StreamReader(@"D:\TestFile.txt"))
{ string line;
while ((line = sr.ReadLine())!= null)
{Console.WriteLine(line.Contains("5"));}
5. Классы и абстрагирование данных. Отношения между классами. Примеры на С++ или C#. Сопоставление с UML-представлением на диаграмме классов.
Классы — сердце каждого объектно-ориентированного языка. Класс представляет собой инкапсуляцию данных и методов для их обработки. Это справедливо для любого объектно-ориентированного языка. Языки отличаются в этом плане лишь типами данных, хранимых в виде членов, а также возможностями классов
|
|
ОПРЕДЕЛЕНИЕ КЛАССОВ.Поместив перед именем вашего класса ключевое слово class, вставьте члены класса, заключенные в фигурные скобки, например: class MySimpleClass
{
private long myClassID;
}
Этот простейший класс с именем MySimpleClass содержит единственный член — myClassID.
НАЗНАЧЕНИЕ КЛАССОВ.
Например, работник на некой фирме. У него есть такие свойства, как фамилия, возраст, стаж и т. п. Так вот, в этом случае удобно каждого работника описывать не рядом независимых переменных (строкового типа для фамилии, целого типа для возраста и стажа), а одной переменной типа Worker, внутри которой и содержатся переменные для фамилии, возраста и стажа. Здесь самое важное то, что в переменной типа Worker содержатся другие переменные. пример класса.
class Worker
{ public int age = 0;
public string name;
}
class Test
{ static void Main(string[] args)
{ Worker wrkl = new Worker();
wrkl.age = 30;
wrkl.name = "Петров Иван Сергеевич";
Console.WriteLine(wrkl.name + " - " + wrkl.age + " года");
} } }
Определяем класс Worker. Внутри этого класса существуют две переменные — целая age и name. (т. е. она будет для «внутреннего использования»).
Далее в строчке Worker wrkl = new Worker();мы заводим экземпляр класса в куче (heap) и возвращаем на него ссылку. Затем в строчках
wrkl.age = 30; wrkl.name = "Петров Иван Сергеевич";
Console.WriteLine(wrkl.name + " - " + wrkl.age + " года"); //мы используем наш класс, //присваивая некоторые значения для возраста и имени и выводя их потом на экран.
Модификатор доступа
public Член доступен вне определения класса и иерархии производных классов
protected Член невидим за пределами класса, к нему могут обращаться только производные классы
private Член недоступен за пределами области видимости определяющего его класса. Поэтому доступа к этим членам нет даже у производных классов
internal Член видим только в пределах текущей единицы компиляции. Модификатор доступа internal в плане ограни чения доступа является гибридом public и protected, зависимым от местоположения кода
конструкторы. специальные методы, вызываемые всякий раз при создании экземпляра класса.Значений конструкторы не возвращают.:
Worker wrkl = new Worker();
Поэтому, объявляя объект, создайте где-нибудь в программе его экземпляр с помощью ключевого слова new:
Constructor App =new ConstructorApp();
Объекты объявляются перед использованием или созданием их экземпляров с помощью new, если вы объявляете один класс внутри другого. Такая вложенность классов называется включение (containment) или агрегирование (aggregation)
ВЛОЖЕННЫЕ КЛАССЫ
Иногда некоторый класс играет чисто вспомогательную роль для другого класса и используется только внутри него. В этом случае логично описать его внутри существующего класса
class ClassA
{
prvate class ClassB
{ public int z; }
6. Доступ к БД средс-ми PHP
План ответа:
1. Поддержка баз данных в РНР.
2. Установка соединения с сервером БД
3. Выбор БД
4. Выполнение запросов к БД
5. Получение и обработка результатов запроса.
6. Отсоединение от БД
7. Освобождение ресурсов.
Поддержка баз данных в РНР.
В РНР реализована мощная поддержка практически всех серверов баз данных, в том числе:
Dbase, Emopress, Informix, InterBase, MySQL, MS SQL Server, PostgreSQL, Sybase, UNIX dbm и др.
Поддержка базы данных в РНР представлена набором стандартных функций для соединения с базой, обработки запроса и разрыва связи.
Наиболее часто в качестве сервера баз данных в паре с РНР используется MySQL, что обусловлено скоростью, надежностью и гибкой лицензионной политикой.
Рассмотрим основные этапы взаимодействия РНР с базой данных на примере MySQL.
1.1. Установить соединение с сервером MySQL. Если попытка завершается неудачей, вывести соответствующее сообщение и завершить процесс.
1.2. Выбрать базу данных сервера MySQL. Если попытка выбора завершится неудачей, вывести соответствующее сообщение и завершить процесс.
|
|
1.3. Обработать запросы к выбранной базе данных.
1.4. После завершения обработки запросов закрыть соединение с сервером баз данных.