Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Enter numbers in the range 1-10 to find my favorite number




9

4

7

Yes, 7 is my favorite.

Программа 4_8

// пользователь указывает шаг итерации

program Project1;

 

{$APPTYPE CONSOLE}

 

Uses

SysUtils;

Var

i, by: Integer;

 

Begin

i:= 0;

Write('Enter an integer: ');

Readln(by);

Writeln('Counting by ', by, 's:');

while i<100 do

Begin

Writeln(i);

i:= i + by;

end;

 

Readln;

end.

Результат:

Enter an integer: 30

Counting by 30s:

Программа 4_9

// обратная перестановка содержимого массива

program Project1;

 

{$APPTYPE CONSOLE}

 

Uses

SysUtils;

Const

ArSize = 20;

Var

word: String[ArSize];

i, j: Integer;

temp: Char;

 

Begin

Write ('Enter a word: ');

Readln(word);

//фактическое изменение массива

j:= 1;

i:= Length(word);

while j < i do

begin //начало блока

temp:= word[i];

word[i]:= word[j];

word[j]:= temp;

Dec(i);

Inc(j);

end; //конец блока

Writeln(word);

Writeln('Done');

 

Readln;

end.

Результат:

Enter a word: take

Ekat

Done

Программа 4_10

// обратная перестановка содержимого строки №2

program Project1;

 

{$APPTYPE CONSOLE}

 

Uses

StrUtils;

Var

sWord: String;

 

Begin

Write('Enter a word: ');

Readln(sWord);

//фактическое изменение массива

sWord:= ReverseString (sWord);

Writeln(sWord);

Writeln('Done');

 

Readln;

end.

Результат:

Enter a word: take

Ekat

Done

Вложенные циклы и двумерные массивы

Итак, цикл for естественным образом подходит для обработки массивов. Сделаем еще шаг в этом направлении и рассмотрим применение одного цикла for в другом цикле for для обработки двумерных массивов (речь идет о вложенных циклах).

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

Объявить двумерный массив можно таким образом:

var A1: array[1..10,1..3] of Integer;

Этот оператор описывает двумерный массив, который можно представить себе как таблицу, состоящую из 10 строк и 3 столбцов.

Доступ к значениям элементов многомерного массива обеспечивается через индексы, перечисляемые через запятую. Например, А1[4,3] — значение элемента, лежащего на пересечении четвертой строки и третьего столбца.

Предположим, что требуется вывести содержимое всего массива. В этом случае для изменения строк можно воспользоваться одним циклом for, а для изменения столбцов — вторым, вложенным циклом for:

Программа 4_11

// двумерный массив

program Project1;

 

{$APPTYPE CONSOLE}

 

Var

a1: array [1..10,1..3] of Integer;

x, y: Integer;

Begin

for y:= 1 to 10 do

Begin

for x:= 1 to 3 do

Write(a1[y,x]);

Writeln;

end;

Readln;

end.

 

ВОПРОСЫ ДЛЯ ПОВТОРЕНИЯ (4)

1. В чем заключается различие между циклом с предусловием и циклом с постусловием?

2. Что будет выведено в результате выполнения следующего фрагмента кода, если включить его в реальную программу:

for i:=0 to 4 do

Write(i);

Writeln;

3. Что будет выведено в результате выполнения следующего фрагмента кода, если включить его в реальную программу:

Var

j: Integer = 0;

Begin

while j < 11 do

Begin

Write(j);

j:= j + 3;

end;

Writeln;

Writeln(j);

Readln;

End.

4. Создайте цикл while, который выводит значения 1, 2, 4, 8, 16, 32, 64 при увеличении в 2 раза значения счетчика на каждом шаге цикла.

5. Каким образом можно включить в тело цикла несколько операторов?

Упражнения по программированию (4)

1. Напишите программу, которая запрашивает у пользователя ввод двух целых чисел. Затем эта программа должна вычислить и отобразить сумму всех целых чисел, находящихся в пределах между двумя введенными целыми числами и включая их. При этом предполагается, что первым вводится меньшее целое число. Например, если пользователь вводит 2 и 9, то программа сообщает, что сумма всех целых чисел от 2 до 9 составляет 44.

2. Напишите программу, которая запрашивает ввод чисел. После ввода каждого числа сообщается общая сумма введенных до сих пор чисел. Программа завершается после ввода нуля.

3. Дафна сделала вклад на сумму $100 под простые проценты, которые составляют 10%. Итак, ежегодно ее вклад дает доход в сумме 10% от первоначального вклада, или $10:

проценты = 0.10 * начальный остаток

В то же время Клео сделала вклад на сумму $100 под сложные проценты, которые составляют 5%. Другими словами, 5% от текущего остатка, с учетом начисленных ранее процентов:

проценты = 0.05 * текущий остаток

Доход Клео за первый год составит 5% от суммы вклада $100, что даст остаток $105. В следующем году ее доход в виде 5% от суммы $105 составит $5.25 и т.д. Напишите программу, которая определяет, сколько лет потребуется для того, чтобы сумма вклада Клео превысила сумму вклада Дафны, а затем отображает сумму обоих вкладов в этот момент.

4. Допустим, что читатель занимается продажей книги "Delphi для дураков". Напишите программу, которая требует ввода объема ежемесячных продаж этой книги в течение года (в экземплярах книг, а не в денежном выражении). В этой программе должен быть использован цикл, предлагающий ввести данные продаж за каждый месяц. Для этого используется строковый массив, инициализированных с присвоением строковых названий месяцев года. Введенные данные сохраняются в массиве значений типа Integer. После этого программа должна найти сумму содержимого массива и выдать отчет об общем объеме продаж за год.

5. Выполните упражнение 4, однако на сей раз воспользуйтесь двумерным массивом для хранения введенных данных о продажах за 1 -й квартал в течение трех лет. Выдайте отчет об общем объеме продаж за каждый год в отдельности и в целом за все годы.

6. Разработайте структуру с именем саr, в которой хранится следующая информация об автомобиле: его марка в виде строки (массива символов), а также год его выпуска в виде целого числа. Напишите программу, которая запрашивает пользователя о том, сколько автомашин следует ввести в каталог. Затем программа должна использовать оператор new для создания нового динамического массива в соответствии с указанным количеством структур саr. Далее она должна выдать запрос ввода марки (которая может состоять из нескольких слов) и года выпуска автомашины для каждой структуры. Следует заметить, что этот процесс требует некоторого внимания, поскольку при этом поочередно осуществляется чтение строковых и числовых данных. И, наконец, программа должна отобразить содержимое каждой структуры. Результат выполнения программы должен выглядеть примерно следующим образом:

How many cars do you wish to catalog? 2.

Car #1:

Please enter the make: Hudson Hornet

Please enter the year made: 1952

Car #2:

Please enter the make: Kaiser

Please enter the year made: 1951

Here is your collection:

Hudson Hornet

Kaiser

7. Напишите программу, использующую вложенные циклы, которая запрашивает ввод количества отображаемых строк. Затем она отображает указанное количество строк, заполненных звездочками. Причем количество звездочек в строке соответствует ее порядковому номеру. Перед звездочками вставляются точки так, чтобы в каждой строке общее количество символов было равно указанному количеству строк.

How many line? 5

....*

...**

..***

.****

*****


Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...