Цикл с предусловием в Паскале и Си — КиберПедия 

Общие условия выбора системы дренажа: Система дренажа выбирается в зависимости от характера защищаемого...

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

Цикл с предусловием в Паскале и Си

2022-10-28 23
Цикл с предусловием в Паскале и Си 0.00 из 5.00 0 оценок
Заказать работу

 

Пример на Паскале:

var

I: integer;

Begin

I:= 1;

while I <= 100 do

begin

Write(‘Привет, мир! ’);

inc(I);

end;

End. 

 

Пример на Си:

#include <stdio.h>

 

int main()

{

int i;

i = 1;

while (i <= 100)

printf(“Привет, мир! ”);

i++;

}

return 0;

}

 

Сравним цикл на Паскале и на Си:

Паскаль Си
I:= 1; while I <= 100 do begin Write(‘Привет, мир! ’); inc(I); end; i = 1; while (i <= 100) {  printf(“Привет, мир! ”); i++; }

 

Отличие цикла while в Паскале и Си видно из примера и из формального описания синтаксиса:

 

Паскаль:

while УСЛОВИЕ_ПРОДОЛЖЕНИЯ_ЦИКЛА do ОПЕРАТОР

 

Си:

while ( УСЛОВИЕ_ПРОДОЛЖЕНИЯ_ЦИКЛА ) ОПЕРАТОР

 

 

Цикл с постусловием в Паскале и Си

 

Пример на Паскале:

var

I: integer;

Begin

I:= 1;

Repeat

Write(‘Привет, мир! ’);

inc(I);

Until I > 100;

End. 

 

Пример на Си:

#include <stdio.h>

 

int main()

{

int i;

i = 1;

do

printf(“Привет, мир! ”);

i++;

} while (i <= 100);

return 0;

}

 

Сравним цикл на Паскале и на Си:

Паскаль Си
I:= 1; Repeat   Write(‘Привет, мир! ’); inc(I); Until I > 100;   i = 1; do {  printf(“Привет, мир! ”); i++; } while (i <= 100);  

 

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

 

Паскаль:

Repeat ОПЕРАТОРЫ Until УСЛОВИЕ_ВЫХОДА_ИЗ_ЦИКЛА

 

Си:

do ОПЕРАТОР while ( УСЛОВИЕ_ПРОДОЛЖЕНИЯ_ЦИКЛА );

 

Обратите внимание:

1. В Си в теле цикла do while стоит только один оператор. Если требуется, чтобы в цикле выполнялись несколько операторов, то их нужно заключить в { }.

2. В Паскале цикл с постусловием выполняется до тех пор, пока не выполняется условие, записанное после UNTIL. В Си цикл с постусловием выполняется до тех пор, пока выполняется условие записанное после WHILE.

 

 

Цикл for в Паскале и Си

 

Пример на Паскале:

var

I: integer;

Begin

for I:= 1 to 100 do

Write(‘Привет, мир! ’);

End. 

 

Пример на Си:

#include <stdio.h>

 

int main()

{

int i;

for (i = 1; i <= 100; i++)

printf(“Привет, мир! ”);

return 0;

}

 

Сравним цикл на Паскале и на Си:

Паскаль Си
for I:= 1 to 100 do Write(‘Привет, мир! ’); for (i = 1; i <= 100; i++) printf(“Привет, мир! ”);

 

Отличие цикла for в Паскале и Си видно из примера и из формального описания синтаксиса:

 

Паскаль:

For СЧЕТЧИК := НАЧАЛЬНОЕ_ЗНАЧЕНИЕ

To КОНЕЧНОЕ_ЗНАЧЕНИЕ

Do ОПЕРАТОР

 

Или

For СЧЕТЧИК := НАЧАЛЬНОЕ_ЗНАЧЕНИЕ

Downto КОНЕЧНОЕ_ЗНАЧЕНИЕ

Do ОПЕРАТОР

 

Си:

for ( ИНИЦИАЛИЗАЦИЯ_ПАРАМЕТРОВ_ЦИКЛА; УСЛОВИЕ_ПРОДОЛЖЕНИЯ_ЦИКЛА;

ИЗМЕНЕНИЕ_ПАРАМЕТРОВ_ЦИКЛА )

ОПЕРАТОР;

 

Обратите внимание: в Паскале две формы цикла For. Одна для прямого подсчета – счетчик изменяется от НАЧАЛЬНОГО_ЗНАЧЕНИЯ до КОНЕЧНОГО_ЗНАЧЕНИЯ с шагом +1 (for i:= 1 to 100 do). Вторая форма считает с шагом –1 (for i:= 100 downto 1 do).

В Си цикл FOR значительно более универсален. В разделе ИНИЦИАЛИЗАЦИЯ_ПАРАМЕТРОВ_ЦИКЛА может быть записано через запятую любое количество любых выражений. То же самое относится к разделу ИЗМЕНЕНИЕ_ПАРАМЕТРОВ_ЦИКЛА. В УСЛОВИИ_ПРОДОЛЖЕНИЯ_ЦИКЛА может быть записано любое логическое выражение.

 

Пример использования цикла FOR:

Задача: вывести на экран таблицу степеней 2.

В результате работы программы должна получиться следующая таблица:

 

N 2^N
0 1
1 2
2 4
3 8
4 16
5 32
6 64
7 128
8 256
9 512
10 1024

 

Напишем реализацию на Паскале:

var

n, y: integer;

Begin

Writeln(‘+----+------+’);

Writeln(‘| N | 2^N |’);

Writeln(‘+----+------+’);

y:= 1;

for n:= 0 to 10 do

begin

writeln(‘| ’, n:2, ‘ | ’, y:4, ‘ |’);

y:= y * 2;

end;

Writeln(‘+----+------+’);

End. 

 

Реализация на Си:

#include <stdio.h>

 

int main()

{

int n, y;

printf(“+----+------+\n”);

printf(“| N | 2^N |\n”);

printf(“+----+------+\n”);

for (y = 1, n = 0; n <= 10; y *= 2, n++)

printf(“| %2d | %4d |\n”, n, y);

printf(“+----+------+\n”);

return 0;

}

 

В этом примере в цикле FOR одновременно используются два счетчика – N и Y. В Паскале этого сделать нельзя, поэтому программа на Паскале получается длиннее, чем на Си.

 

задание для Лабораторной работы по теме «ЦИКЛЫ и вывод в Си»

 

Цель работы

 

Изучить использование различных циклов и процедуры вывода PRINTF.

Общее задание

 

Необходимо разработать 3 программы, каждая из которых выполняет одни и те же действия: вывод на экран набора символов, указанных в варианте. В программе №1 требуется использовать цикл с постусловием do.. while. В программе №2 требуется использовать цикл с предусловием while. В программе №3 требуется использовать цикл for. Массивы и файлы в программе использовать нельзя.

 

Пример выполнения лабораторной работы

 

Задание: На экран нужно вывести набор символов:

A B C D E

B C D E F

C D E F G

D E F G H

E F G H I

 

Программа №1 (с циклом do … while):

#include <stdio.h>

#include <conio.h>

 

int main()

{

int i, j, c;

 

clrscr();

 

// Внешний цикл обеспечивает вывод 5 строк

// с начальными символами строки ‘A’, ‘B’, ‘C’, ‘D’ и ‘E’

i = ‘A’;

do

{

// Внутренний цикл обеспечивает вывод ровно 5 символов,

// начиная с символа i

c = i;

j = 0;

do

{

printf(“%c ”, c);

c++;

j++;

} while (j < 5);

 

printf(“\n\n”);

i++

} while (i <= ‘E’);

 

return 0;

}

 

Программа №2 (с циклом while):

#include <stdio.h>

#include <conio.h>

 

int main()

{

int i, j, c;

 

clrscr();

 

// Внешний цикл обеспечивает вывод 5 строк

// с начальными символами строки ‘A’, ‘B’, ‘C’, ‘D’ и ‘E’

i = ‘A’;

while (i <= ‘E’)

{

// Внутренний цикл обеспечивает вывод ровно 5 символов,

// начиная с символа i

c = i;

j = 0;

while (j < 5)

{

printf(“%c ”, c);

c++;

j++;

}

printf(“\n\n”);

i++

}

return 0;

}

 

Программа №3 (с циклом for):

#include <stdio.h>

#include <conio.h>

 

int main()

{

int i, j, c;

 

clrscr();

 

// Внешний цикл обеспечивает вывод 5 строк

// с начальными символами строки ‘A’, ‘B’, ‘C’, ‘D’ и ‘E’

for (i = ‘A’; i <= ‘E’; i++)

{

// Внутренний цикл обеспечивает вывод ровно 5 символов,

// начиная с символа i

for (c = i, j = 0; j < 5; c++, j++)

printf(“%c ”, c);

printf(“\n\n”);

}

return 0;

}


 

Задачи простые

 


Вариант A1.

A B C D E

A B C D

A B C

A B

A

 

Вариант A2:

Z Y X W V

Z Y X W

Z Y X

Z Y

Z

 

Вариант A3:

Z Y X W V

Y X W V

X W V

W V      

V

 

Вариант A4:

A B C D E

B C D E

C D E

D E

E

 

Вариант A5:

Z Y 

Z Y X

Z Y X W 

Z Y X W V


Вариант A6:

V

W V

X W V

Y X W V

Z Y X W V

 

Вариант A7:

A C E G I

C E G I

E G I

G I

I

 

Вариант A8:

A C E G I

B D F H J

C E G I K

D F H J L

E G I K M

 

Вариант A9:

A

A B

A B C

A B C D

A B C D E

 

Вариант A10:

Z X V T R

X V T R P

V T R P N

T R P N L

R P N L J

 


Вариант A11:

1 2 3 4 5

2 3 4 5

3 4 5

4 5

5

 

Вариант A12:

1 3 5 7 9

3 5 7 9

5 7 9

7 9

9

 

Вариант A13:

9

7 9

5 7 9

3 5 7 9

1 3 5 7 9

 

Вариант A14:

R

T R

V T R

X V T R

Z X V T R

 

Вариант A15:

Z X V T R

X V T R

V T R

T R

R


 

Задачи средней сложности

 


Вариант B1:

A B C D E

E A C D E

E D A D E

E D C A E

E D C B A

 

Вариант B2:

A B C D E

E A B C D

D E A B C 

C D E A B  

B C D E A

 

Вариант B3:

A B C D E

B C D E Z

C D E Z Y

D E Z Y X

E Z Y X W

Z Y X W V

 

Вариант B4:

A D G J M

M D G J M

M J G J M

M J G J M

M J G D M

M J G D A

 

Вариант B5:

A B C D E

Z B C D E

Y Z C D E

X Y Z D E

W X Y Z E


Вариант B6:

A B C D E

A A B C D

B A A B C

C B A A B

D E B A A

E D C B A

 

Вариант B7:

A D B E C

C A D B E

E C A D B

B E C A D

D B E C A

 

Вариант B8:

A

B C

D E F

G H I J

K L M N O

 

Вариант B9:

A

B C

C D E

D E F G

E F G H I

 

Вариант B10:

A B C D E

F G H I

J K L

M N

   O


Вариант B11:

A B C D E

F G H I

J K L

M N

   O

 

 

Вариант B12:

A B C D E

B C D E

C D E

D E

   E

 

Вариант B13:

A B C D E F G

B C D E F  

C D E    

D      

 

Вариант B14:

A C E G I

A C E G

A C E

A C E G

A C E G I

 

 

Вариант B15:

   Z

Z Y

Z Y X

Z Y X W

Z Y X

Z Y

   Z

 


 

Задачи сложные

 


Вариант C1:

A       

B A B     

B B A B B

A A A A A A A

B B A B B 

B A B 

A

 

Вариант C2:

... X...

.. X X..

. X  X.

X      X

. X  X.

.. X X..

... X...

 

Вариант C3:

. + #. # +.

+ #... # +

#..... #

.......

#..... #

+ #... # +

. + #. # +.

 

Вариант C4:

A B C D C B A

B C D D C B

C D  D C

D      D

C D  D C

B C D D C B

A B C D C B A

 

Вариант C5:

A

A B C

A B C B C

A B C B C B A

C B C B A

C B A

A


Вариант C6:

+ + + + + + +

+ + + O + + +

+ + 0 O 0 + +

+ 0 0 O 0 0 +

+ + 0 O 0 + +

+ + + O + + +

+ + + + + + +

 

Вариант C7:

A B B C C C D

B B C C C D D

B C C C D D D

C C C D D D D

C C D D D D

C D D D D

D D D D

 

Вариант C8:

A A A

A A A B

A A B B C

B B C B B

C B B A A

B A A A

   A A A

 

Вариант C9:

... A A A B

... A A B C

... A B C C

B B B B C C C

B B C D...

B C D D...

C D D D...

 

Вариант C10:

. A A A A A +

.. A A A + C

... A + C C

B B B + C C C

B B + D. C C

B + D D.. C

+ D D D...


Вариант C11:

A

B A B

C B A B C

D C B A B C D

C B A B C

B A B

A

 

Вариант C12:

+ + + + + X 

+ + + X + 

+ X + + 

X + + +  

X + + + + 

X + + + + +  

 

Вариант C13:

X      

* X *   

* * X * * 

* * * X * * *

X. X    

X... X  

X..... X

 

Вариант C14:

X + + X

X + X +

X X + +

X + + +

X + X + +

X + + + X +

X + + + + + X

 

Вариант C15:

X.. X

X. X +

X X + +

X + + +

X * X + +

X * * * X +

X * * * * * X

 


ФУНКЦИИ В ЯЗЫКЕ СИ

 


Поделиться с друзьями:

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

Двойное оплодотворение у цветковых растений: Оплодотворение - это процесс слияния мужской и женской половых клеток с образованием зиготы...

Папиллярные узоры пальцев рук - маркер спортивных способностей: дерматоглифические признаки формируются на 3-5 месяце беременности, не изменяются в течение жизни...

Опора деревянной одностоечной и способы укрепление угловых опор: Опоры ВЛ - конструкции, предназначен­ные для поддерживания проводов на необходимой высоте над землей, водой...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.183 с.