Условные операторы
Изучение главных особенностей массивов в C#. Характеристика аспектов оператора switch. Характеристика программы, в которой с клавиатуры вводятся элементы одномерного массива. Рассмотрение основ процесса создания массива. Особенности его инициализации.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | лабораторная работа |
Язык | русский |
Дата добавления | 18.12.2013 |
Размер файла | 245,5 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Кыргызско-Российский Славянский Университет
Лабораторная работа №4
Тема: «Условные операторы. Операторы цикла. Массивы»
Выполнила
Исманова Алтынай
Проверила
Якиманская Т.Т
Бишкек 2013
Цель работы: Изучение массивов в C#.
Краткие теоретические сведения.
Условные операторы.
Оператор if
Выполняет один или несколько операторов, если вычисленное им выражение имеет результат true.
Синтаксис оператора // (квадратные скобки указывают, что конструкция else является необязательной):
if (выражение)
оператор1
[else
оператор2]
Указанное здесь выражение должно давать булевский результат. Если он равен true, управление передается на оператор1. Если результат равен false и присутствует конструкция else, управление передается на one ратор2.
Пример составного оператора, который вычисляется, если значение выражение равно true.
if (выражение!)
{
оператор1 оператор2 }
Несколько конструкций else
else можно также применять в случаях, когда нужно проверить более двух условий.
if (выражение1)
{ операторы1;
}
else if (выражение2
{ операторы2;
}
……..
else if (выражение n)
{
} else
{
операторы в случае невыполнения условий выражений с 1 по n--ое.;
}
Новички в С# могут "пойматься" на том, что результатом вычисления выражения в операторе должно быть булевское значение. Этим С# отличается от таких языков как C++, которые позволяют в операторе if сравнивать любые переменные на их совпадение с нулем.
Оператор switch В операторе switch вы указываете выражение, возвращающее некоторое значение и один или несколько фрагментов кода, которые будут выполняться в зависимости от результата выражения. Он аналогичен применению нескольких операторов if/else, но если в последних вы можете указать несколько условий (возможно, не связанных между собой), то в операторе switch содержится лишь один условный оператор, за которым следуют блоки, которые нужно выполнять. Вот его синтаксис:
switch (выражение-переключатель) {
case выражение-константа:
оператор
оператор_перехода
case выражение-константа_N:
onepamop_N [default]
}
Выражение-переключатель должно иметь тип sbyte, byte, short, ushort, int, uint, long, ulong, char или string (или еnum на основе одного из этих типов) или же должно быть явно преобразовано в один из этих типов. Во-вторых, в каждом операторе case (кроме последнего блока)
должен быть тот или иной оператор перехода, включая оператор break.
По сути оператор switch работает так же, как if. Сначала вычисляется выражение-переключатель, а затем результат сравнивается со всеми выражениями-константами или case-метками, определенными в операторах case. При обнаружении совпадения управление передается первой строке кода в соответствующем операторе case.
Кроме нескольких операторов case, в switch можно указать оператор default. Это аналогично конструкции else в операторе //. Каждый оператор switch может иметь только одну метку default. При ее отсутствии, если значение выражения-переключателя не соответствует ни одной case-метке, управление передается на первую строку после закрывающей скобки оператора switch. }
Объединение case-меток
Если объединить case-метки?В этом случае нужно расположить case-метки одну за другой.
Операторы цикла.
Оператор while
Форма оператора while такова:
while (булевское выражение) {операторы тела цикла}
пример:
int count;
Console.WriteLine(“Сколько приветствий Вы хотите?”);
count=Console.ReadLine();
while (count>0) {
Console.WriteLine(“Hello!\n”);
Оператор do/while
Приглядевшись к синтаксису оператора while, вы можете обнаружить потенциальную проблему. Булевское_выражение вычисляется до исполнения встроенного оператора. Чтобы решить эту проблему используйте оператор do/while.
do
{операторы тела цикла} while (булевское_выражение);
пример:
string password;
do{
password=Console.ReadLine();
} while(password!=”пароль”);
Оператор for
Этот самый распространенный итерационный оператор может содержать до трех частей. Первая, которая может встречаться только раз, служит для инициализации в начале цикла. Вторая -- проверка условия, в результате которой определяется, выполнять ли цикл снова. И третья -- "приращение" -- обычно (но не обязательно) используется для инкремента счетчика, управляющего продолжением цикла -- именно этот счетчик обычно анализируется во второй части оператора.
Форма оператора for:
for (инициализация; булевское выражение; приращение)
{ операторы тела цикла }
пример:
int k=Int32.Parse(Console.ReadLine());
int sum=0;
for (int i=1;i<=k;i++){
sum+=i;
}
Любая из трех частей (инициализация, булевское выражение, приращение) может отсутствовать. Когда булевское выражение равно false управление передается от начала цикла к строке, следующей за операторами тела цикла. То есть оператор for работает так же, как и while, но при этом у вас две дополнительные части: инициализация и приращение.
Оnepaтopы тела цикла for могут содержать такие же циклы -- их называют вложенными.
Оператор foreach
Некоторые языки, такие как Visual Basic, давно имеют специальные операторы для итерации массивов и наборов. В С# тоже есть такая конструкция -- оператор foreach:
foreach (тип in выражение) {операторы тела цикла}
например:
int [] m={1,2,3};
int sum=0;
foreach (int i in m){
sum+=i;
}
Массивы.
Объявление массивов
Для объявления массива на С# нужно поместить пустые квадратные скобки между именем типа и переменной, например, так:
int[] numbers;
Далее вы должны создать экземпляр массива, и только после этого он будет существовать в
том смысле, что для его элементов будет выделена память. Вот как объявить массив и одновременно создать его экземпляр:
// Этот код объявляет одномерный массив
// из 6 элементов и создает его экземпляр.
int[] numbers = new int[6]; -
пример использования массива:
using System;
class SingleArray {
protected int[] numbers;
SingleArray() {
numbers = new int[6];
for (int 1 = 0; i < 6; i++)
{
numbers[i] = i * i; } }
protected void PrintArrayO {
for (int 1=0; i < numbers.Length; 1++) {
Console.WriteLine("numbers[{0}]={1}", i, numbers[i]); } }
public static void Main() <
SingleArray app = new SingleArrayO;
app. PrintArrayO; } }
При запуске этого примера будет получена выходная информация:
numbers[0]=0
nurabers[1]=1
numbers[2]=4
nuinbers[3]=9
nurabers[4]=16
numbers[5]=25
Элементы массива можно задавать сразу при объявлении:
int []k={1,2,3};
Нумерация элементов ведется с нуля. Начальный элемент массива задается как k[0]=1;
Многомерные массивы.
Двумерные массивы :
int [,] k=new int[2,3];
Первый элемент такого массива это-- k[0,0], последний -- k[1,2].
Многомерные массивы также можно инициализировать при объявлении:
int [,] k={{2,--2},{3,--22},{0,4}};
Рассмотренные выше массивы называют прямоугольными. В языке C# есть также ступенчатые массивы.
Объявление ступенчатых массивов:
Двумерный ступенчатый массив можно объявить так:
int[ ] [ ] k=new int[2][ ];
объявим 0--й элемент этого массива, это будет также массив, например с тремя элементами:
k[0]=new int[3];
объявим 1--й элемент этого ступенчатого массива теперь уже с четырьмя элементами.
k[1]=new int[4];
обращение к элементу такого массива будет выглядеть так:
k[1][3]=22;
У ступенчатых массивов мы задаем несколько пар квадратных скобок (столько, сколько размерность у массива).
1. Задание
Напишите программу, в которой с клавиатуры вводятся элементы одномерного массива. Программа должна определить, верно, ли что максимальный элемент массива больше минимального элемента ровно в 2 раза и напечатать соответствующее сообщение.
Ответы на вопросы:
Как объявляется одномерный массив?
Для объявления массива на С# нужно поместить пустые квадратные скобки между именем типа и переменной, например, так:
int[] numbers;
Далее вы должны создать экземпляр массива, и только после этого он будет существовать в
том смысле, что для его элементов будет выделена память. Вот как объявить массив и одновременно создать его экземпляр:
// Этот код объявляет одномерный массив
// из 6 элементов и создает его экземпляр.
int[] numbers = new int[6]; -
пример использования массива:
using System;
class SingleArray {
protected int[] numbers;
SingleArray() {
numbers = new int[6];
for (int 1 = 0; i < 6; i++)
{
numbers[i] = i * i; } }
protected void PrintArrayO {
for (int 1=0; i < numbers.Length; 1++) {
Console.WriteLine("numbers[{0}]={1}", i, numbers[i]); } }
public static void Main() <
SingleArray app = new SingleArrayO;
app. PrintArrayO; } }
При запуске этого примера будет получена выходная информация:
numbers[0]=0
nurabers[1]=1
numbers[2]=4
nuinbers[3]=9
nurabers[4]=16
numbers[5]=25
Элементы массива можно задавать сразу при объявлении:
int []k={1,2,3};
Нумерация элементов ведется с нуля. Начальный элемент массива задается как k[0]=1;
Из каких двух этапов состоит процесс создания массива?
Процесс создания массива можно разделить на следующие этапы:
объявление, сортировка, обращение
3. Как осуществляется доступ к элементу массива?
Доступ к элементам массива осуществляется с помощью указания имени массива и значения, заключенного в квадратные скобки. Например, определим массив с тремя элементами так:
var myArray = [1,51,68];
Массивы в JavaScript индексируются, начиная с нуля, поэтому, чтобы получить доступ к первому элементу массива, следует указать myArray [0]. Вот как можно получить доступ к различным элементам нашего массива:
var х = myArray[0];
var у = myArray[1];
var z = myArray[2];
При доступе к элементам массива, которые не были установлены, надо быть осторожным. Например,
alert(myArray[35]);
отобразит значение undefined, поскольку указанный элемент массива, очевидно, не установлен. Однако, если требуется установить этот элемент массива, то сделать это очень просто.
4. Как объявить массив типа double, в котором содержится 5 элементов?
Чаще всего при объявлении массива используется имя с инициализацией. И опять-таки, как и в случае простых переменных, могут быть два варианта инициализации. В первом случае инициализация является явной и задаётся константным массивом. Вот пример:
double[] x = {5};
Следуя синтаксису, элементы константного массива следует заключать в фигурные скобки. Если массив инициализируется константным массивом, то в динамической памяти создаётся константный массив с заданными значениями, с которым и связывается ссылка.
5. Осуществляется ли во время выполнения программы на языке C# контроль над граничными значениями индексов массива?
Во время выполнения осуществляется Жесткий контроль над граничными значениями индексов. Следует указывать индекс, не превышающий граничные значения индексов данного массива, в противном случае возникнет ошибка выполнения программы
6. Может ли отличаться длина каждого внутреннего массива в невыровненном массиве?
Невыровненный массив -- это внешний массив, состоящий из внутренних массивов разной длины. Следовательно, невыровненный массив можно использовать для создания таблицы, содержащей строки различной длины. При объявлении невыровненных массивов для указания каждой размерности используется отдельная пара квадратных скобок.
7. Как инициализируются многомерные массивы?
Многомерные массивы инициализируются так же, как и одномерные. В следующем примере массив sqrs инициализируется числами от 1 до 10 и их квадратами:
int sqrs[10][2] = {
1, 1,
2, 4,
3, 9,
4, 16,
5, 25,
6, 36,
7, 49,
8, 64,
9, 81,
10, 100
};
Инициализируя многомерный массив, для улучшения наглядности элементы инициализации каждого измерения можно заключать в фигурные скобки. Этот способ называется группированием подагрегатов (subaggregate grouping). С использованием этого приема предыдущий пример может быть записан так:
int sqrs[10][2] = {
{1, 1},
{2, 4},
{3, 9},
{4, 16},
{5, 25},
{6, 36},
{7, 49},
{8, 64},
{9, 81},
{10, 100}
};
При такой записи, если внутри группы недостаточно констант инициализации, то оставшиеся элементы группы автоматически заполняются нулями.
8. Как указывается каждая размерность для прямоугольных многомерных массивов?
В С# и CLR имеется прямая поддержка многомерных массивов, которые также называются прямоугольными массивами. В С# очень легко объявить массив с несколькими измерениями.
Для этого понадобится внутри квадратных скобок просто перечислить через запятую размерности массива, как показано в следующем примере:
массив switch программа клавиатура
1 2 3 4 5 6 7 8 9 10 11 |
using System; public class EntryPoint { static void Main() { int[,] twoDiml = new int[5,3]; int[,] twoDim2 = { {1, 2, 3}, {4, 5, 6}, {1, 8, 9} }; f oreach ( int i in twoDim2 ) { Console.WriteLine ( i ); } |
Относительно использования прямоугольных массивов следует отметить несколько моментов. Все обращения к этим массивам сводятся к вызову методов сгенерированного CLR ссылочного типа, и встроенный тип вектора здесь не участвует. Обратите внимание на два объявления.
В обоих случаях при объявлении типа указывать размер каждого измерения не нужно. Это объясняется тем, что массивы типизируются на основе типа элементов и размерности (ранга). Однако при создании экземпляра типа массива указывать размер измерений обязательно.
В данном примере это сделано двумя разными способами. При создании twoDiml размеры указаны явно, а при создании twoDim2 компилятор определяет размеры на основании выражения инициализации.
9. В программе заданы два одномерных массива с именами соответственно array1 и array2. Объясните, что означает следующее выражение : array1=array2;
выражение $array1[] = $array2 не добавляет значения массива $array2 к $array1, но добавляет $array2 как последний элемент $array1
Вот тут неправильный ответ!!!! Попробуй посмотри правильный
10. Существует ли возможность изменить размер массива в программе C#? Массив называется динамическим потому что память под него выделяется динамически, а менять размер вовсе не обязательно. Если нужно изменить размер, то лучше всего использовать System.Collections.ArrayList или нечто подобное. А если напрямую, то так:
[src]
int[] arr = new int[5];
for( int i = 0; i < 5; i++ )
{
arr = i;
}
int[] temp = arr;
arr = new int[10];
tmp.CopyTo( arr, 0 );
[/src]
Размещено на Allbest.ru
...Подобные документы
Составление программы для нахождения минимального и максимального элементов массива. Программа вычисления корней квадратных алгебраических уравнений. Ранжирование одномерного массива по заданному признаку. Формирование массивов с помощью функции random.
контрольная работа [1,0 M], добавлен 30.04.2013Разработка и реализация типовых алгоритмов обработки одномерных массивов на языке Delphi. Максимальный и минимальный элемент массива. Значение и расположение элементов массива. Элементы массива, находящиеся перед максимальным или минимальным элементом.
лабораторная работа [12,8 K], добавлен 02.12.2014Модификация и сравнения двух текстовых файлов. Программа, написанная на языке программирования Cи и работоспособна на IBM совместимых компьютерах. Псевдографический и графический интерфейсы. Анализ программы методом сортировки одномерного массива.
курсовая работа [116,2 K], добавлен 21.02.2008Особенности создания массивов в AutoCAD 2012, основные команды. Создание прямоугольного массива путем размножения выбранных элементов с заданным количеством рядов и столбцов, образующих прямоугольную матрицу. Этапы проектирования кругового массива.
курсовая работа [1,1 M], добавлен 20.05.2014Особенности поиска среднеарифметического значения элементов массива. Общая характеристика проблем разработки в среде Turbo Pascal программы упорядочивания массива по возрастанию. Рассмотрение основных этапов разработки программы на языке PASCAL.
курсовая работа [896,7 K], добавлен 18.05.2014Массив - это коллекция переменных, которые имеют общее имя и базовый тип. Функциональные возможности, виды массивов и их характеристика. Основные требования к входным и выходным данным массива. Использование IF THEN для перехвата всех возможных ошибок.
реферат [22,6 K], добавлен 01.12.2010Описание особенностей работы с массивами на С/С++. Образование адресного выражения с использованием имени массива или указателя на массив. Написание программы, которая объединяет два упорядоченных по возрастанию массива в один упорядоченный массив.
лабораторная работа [114,2 K], добавлен 25.03.2019Изучение понятия и основных видов массивов. Ввод массива с клавиатуры и вывод на экран. Сортировка массивов. Метод простых обменов (пузырьковая сортировка). Сортировка простым выбором и простым включением. Решение задач с использованием массивов Паскаля.
курсовая работа [82,1 K], добавлен 18.03.2013Одномерные числовые массивы, образование элементами целочисленного массива невозрастающей последовательности. Программное нахождение суммы элементов каждой возможной строки матрицы и формирование массива из найденных сумм, вывод массива-результата.
лабораторная работа [12,8 K], добавлен 09.01.2011Виды информационно-вычислительных сетей: локальные, городские, глобальные; их классификация. Разработка программы на языке программирования С: формирование одномерного массива путем замены нулевых элементов на среднеарифметическое, а пробелов - на слова.
практическая работа [37,5 K], добавлен 20.05.2012Общая характеристика организации массива в виде двоичного дерева. Особенности линейного и двоичного поиска заданного элемента массива. Методика упорядочения массива методом сортировки деревом. Инструкции и текст программы для нечисленной обработки данных.
курсовая работа [242,3 K], добавлен 12.11.2010Осуществление идентификации элемента внутри массива с помощью индекса (ключа). Понятие и свойства массивов, механизм их инициализации и создания. Недостатки непрерывных списков. Структура связного списка, удаление записи из него и добавление нового имени.
презентация [868,4 K], добавлен 14.10.2013Ознакомление с формой записи и работой операторов условного if (если) и безусловного а goto (идти к) переходов как способами организации ветвления в программе. Изучение оператора выбора альтернативы - switch (переключатель). Использование функции default.
лабораторная работа [72,0 K], добавлен 15.07.2010Заполнение массива из целых чисел с присвоением элементам разных значений. Варианты программы с использованием различных операторов организации циклов. Определение квадрата максимального из четных элементов массива и общего числа нулевых элементов.
лабораторная работа [259,3 K], добавлен 14.05.2011Выведение значения элементов массива, которые удовлетворяют неравенству. Подсчет количества отрицательных элементов массива. Изменение исходного массива. Тестирование программы. Проверка её работоспособности. Реакция программы на сообщение об ошибке.
лабораторная работа [1,3 M], добавлен 23.11.2014Функции формирования массива времени. Формирование массива входного напряжения, массива выходного напряжения. Функция вывода таблицы, расчета заданной точности, вывода титульного листа. Запись в файл массива времени. Блок–схема и текст программы.
курсовая работа [155,6 K], добавлен 22.04.2012Основные типы циклов программирования. Методы применения специальных функций break, continue и цикла while. Обработка массивов информации. Условия применения циклических алгоритмов на языке программирования С++. Инициализация одномерного массива.
курсовая работа [1,7 M], добавлен 06.01.2014Форма программы для ввода и вывода массива в программной среде Lazarus. Характеристика главных недостатков Lazarus. Цикл для пропуска пробелов между словами. Результат обработки текстового редактора memo.text. Листинг и экранные формы заданной программы.
контрольная работа [799,2 K], добавлен 15.01.2011Создание программы визуализации методов сортировки массива, особенности и направления ее практического применения. Выбор и обоснование среды программирования. Разработка руководства пользователя. Листинг программы и оценка эффективности ее использования.
дипломная работа [1,0 M], добавлен 15.06.2014Вектор и матрица с числовыми компонентами как математические прообразы массивов. Создание программы, содержащей процедуры для выполнения заданных операций: построение массива, перестановка строк и столбцов. Использование диалоговых окон "уведомлений".
курсовая работа [1,3 M], добавлен 15.02.2011