Усовершенствуйте программу tablmul таким образом чтобы в результате выводилось

В очередной раз начал изучать язык С, по книге Кернигана и Ричи «Язык программирования С». Надеюсь хоть в этот раз добью книжку до конца. Сюда буду выкладывать ответы на упражнения встречающиеся в книге по мере их решения.

Решения делал с учетом пройденного материала и не забегая вперед.
Итак, начнем пожалуй.

Упражнение 1.3. Усовершенствуйте программу преобразования температур таким образом, чтобы над таблицей она печатала заголовок.
Решение:

#include
/* печать таблицы температур по Фаренгейту и Цельсию для
fahr = 0, 20, . 300; */
main ()
<
float fahr , celsius ;
int lower , upper , step ;

lower = 0 ; /* нижняя граница таблицы температур */
upper = 300 ; /* верхняя граница */
step = 20 ; /* шаг */

while ( fahr celsius = ( 5.0 / 9.0 ) * ( fahr — 32.0 ) ;
printf ( » %3.0f %8.1fn » , fahr , celsius ) ;
fahr = fahr + step ;
>
>

Анализ программ с помощью трассировочных таблиц. Видеоурок 10. Информатика 11 класс

Упражнение 1.4. Напишите программу, которая будет печатать таблицу соответствия температур по Цельсию температурам по Фаренгейту.
Решение:

#include
/* печать таблицы температур по Фаренгейту и Цельсию для
cels = 0, 10, . 100; вариант с плавающей точкой */
main ()
<
float fahr , celsius ;
int lower , upper , step ;

lower = 0 ; /* нижняя граница таблицы температур */
upper = 100 ; /* верхняя граница */
step = 10 ; /* шаг */

celsius = lower ;
while ( celsius fahr = ( 9.0 * celsius + 160 ) / 5.0 ;
printf( » %3.0f %6.0fn » , fahr , celsius ) ;
celsius = celsius + step ;
>
>

Упражнение 1.5. Измените программу преобразования температур так, чтобы она печатала таблицу в обратном порядке, т. е. от 300 до 0.
Решение:

#include
/* печать таблицы температур по Фаренгейту и Цельсию
в обратном порядке*/
main ()
<
int fahr ;
for ( fahr = 300; fahr >= 0; fahr = fahr — 20 )
printf ( » %3d %6.1fn » , fahr , ( 5.0 / 9.0 ) * ( fahr — 32 )) ;
>

Читайте также:
Какая транзакция в программе sap используется для проводки документа пересчета


Упражнение 1.6. Убедитесь в том, что выражение getchar() != EOF получает значение 0 или 1.
Решение:

#include
/* Проверка выражения getchar() != EOF
Для получения 0, необходимо нажать Ctrl+D в Linux-e
или Ctrl+Z в Windows*/
main ()
<
int result ;

result = ( getchar () != EOF ) ;

if ( result == 0 )
printf ( «Равно 0 n » ) ;
if ( result == 1 )
printf ( «Равно 1 n » ) ;
>


Упражнение 1.7. Напишите программу, печатающую значение EOF.
Решение:
#include
/* Вывод значения EOF */
main ()
<
printf ( » %dn » , EOF ) ;
>

Упражнение 1.8. Напишите программу для подсчета пробелов, табуляций и новых строк.

14 Задание ЕГЭ Информатика Исполнитель Редактор


Решение:

#include
/* подсчет пробелов, табуляций и строк входного потока */
main ()
<
int c , nspace , ntab , nline ;

nspace = ntab = nline = 0;

while (( c = getchar ()) != EOF ) <
if ( c == ‘ ‘ )
++ nspace ;
if ( c == ‘t’ )
++ ntab ;
if ( c == ‘n’ )
++ nline ;
>
printf ( «Пробелы — %d , табуляции — %d , строки — %dn » , nspace , ntab , nline ) ;
>

Упражнение 1.9. Напишите программу, копирующую символы ввода в выходной поток и заменяющую стоящие подряд пробелы на один пробел.
Решение:

#include
/* замена стоящих подряд пробелов на один пробел */
main ()
<
int c , pred ;

while (( c = getchar ()) != EOF ) <
if ( c == ‘ ‘ ) <
if ( pred == 0 ) < /* был ли ранее пробел */
putchar ( c ) ; /* если нет — печатаем */
pred = 1 ; /* и запоминаем */
>
>
if ( c != ‘ ‘ ) <
putchar ( c ) ;
pred = 0 ;
>
>
>

Упражнение 1.10. Напишите программу, копирующую вводимые символы в выходной поток с заменой символа табуляции на t, символа забоя на b и каждой обратной наклонной черты на \. Это сделает видимыми все символы табуляции и забоя.
Решение:

Читайте также:
Как сделать программу для ставок

#include
/* замена специальных символов */
main ()
<
int c , spec ;

while (( c = getchar ()) != EOF ) <
spec = 0 ;
if ( c == ‘t’ ) <
printf ( » \ t» ) ;
spec = 1 ;
>
if ( c == ‘\’ ) <
printf ( » \\ » ) ;
spec = 1 ;
>
if ( c == ‘b’ ) <
printf ( » \ b» ) ;
spec = 1 ;
>
if ( spec == 0 )
putchar ( c ) ;
>
>

Упражнение 1.12. Напишите программу, которая печатает содержимое своего ввода, помещая по одному слову на каждой строке.
Решение:

#define IN 1
#define OUT 0

/* печать по одному слову в каждой строке */
main ()
<
int c , state ;

while (( c = getchar ()) != EOF ) <
if ( c == ‘ ‘ || c == ‘n’ || c == ‘t’ ) <
if ( state == IN ) <
putchar ( ‘n’ ) ;
state = OUT ;
>
>
else <
state = IN ;
putchar ( c ) ;
>
>
>

Упражнение 1.13. Напишите программу, печатающую гистограммы длин вводимых слов. Гистограмму легко рисовать горизонтальными полосами. Рисование вертикальными полосами — более трудная задача.
Решение:

#define IN 1
#define OUT 0

/* гистограмма длин слов (горизонтальная) */
main ()
<
int c , state ;

while (( c = getchar ()) != EOF ) <
if ( c == ‘ ‘ || c == ‘n’ || c == ‘t’ ) <
if ( state == IN )
putchar ( ‘n’ ) ;
state = OUT ;
>
else <
if ( state == OUT )
state = IN ;
putchar ( ‘#’ ) ;
>
>
>

#define IN 1
#define OUT 0
#define MAXWORD 80 /* максимальное количество слов */
/* т. е. длина нашей гистограммы */

/* гистограмма длин слов (вертикальная) */
main () <
int i , j , c , state ;
int lenword [ MAXWORD ], nextword , maxword ;

nextword = maxword = 0 ;
for ( i = 0 ; i < MAXWORD ; i ++ )
lenword [ i ] = 0 ;
state = OUT ;

Упражнение 1.14. Напишите программу, печатающую гистограммы частот встречаемости вводимых символов.
Решение:

/* гистограмма частот встречаемости введенных символов
подсчитываются символы с ASCII-кодами от 0 до 256 */
main () <
int c , i , j , symbols [ 256 ] ;
for ( i = 0 ; i < 256 ; ++ i )
symbols [ i ] = 0 ;

Читайте также:
Проводник программа на Андроид для чего

while (( c = getchar ()) != EOF ) <
++ symbols [ c ] ;
>
for ( i = 0; i < 256 ; i ++ )
if ( symbols [ i ] > 0 ) <
if ( i >= 32 )
printf ( «Симв ‘ %c ‘ — » , i ) ;
else
printf ( «Код ‘ %2d ‘ — » , i ) ;
for ( j = 0 ; j < symbols [ i ] ; ++ j )
putchar ( ‘#’ ) ;
putchar ( ‘n’ ) ;
>
>

Источник: antilopu-gnu.blogspot.com

Усовершенствуйте программу TablMul таким образом, чтобы в итоге выводилась оценка, поставленная

Const Size = 7;
Var
Ball: array[1..Size] of real;
Ocenka: array[1..Size] of integer;
Counter: integer;
Begin
Counter := 1;
while (Counter lt;= Size) do
begin
Write(Введите балл , counter, воспитанника: );
Readln(Ball[Counter]);
Counter := Counter + 1;
end;
Counter := 1;
Repeat
if (Ball[Counter] gt; 90) then
Ocenka[Counter] := 5
else if (Ball[Counter] gt;= 75) and (Ball[Counter] lt; 90) then
Ocenka[Counter] := 4
else if (Ball[Counter] gt;= 50) and (Ball[Counter] lt; 75) then
Ocenka[Counter] := 3
else
Ocenka[Counter] := 2;
Counter := Counter + 1;
Until (Counter gt; Size);
Writeln();
for var i := 1 to Size do
Writeln(Оценка , i, воспитанника: , Ocenka[i]);
End.

Источник: obrazovalka.com

Усовершенствуйте программу tablmul таким образом чтобы в результате выводилось

Var
Ball: array[1..Size] of real;
Ocenka: array[1..Size] of integer;
Counter: integer;

while (Counter begin
Write(‘Введите балл ‘, counter, ‘ ученика: ‘);
Readln(Ball[Counter]);
Counter := Counter + 1;
end;

Repeat
if (Ball[Counter] > 90) then
Ocenka[Counter] := 5

else if (Ball[Counter] >= 75) and (Ball[Counter] < 90) then
Ocenka[Counter] := 4

else if (Ball[Counter] >= 50) and (Ball[Counter] < 75) then
Ocenka[Counter] := 3

else
Ocenka[Counter] := 2;

Counter := Counter + 1;

Until (Counter > Size);

for var i := 1 to Size do
Writeln(‘Оценка ‘, i, ‘ ученика: ‘, Ocenka[i]);

Источник: mozgovnet.com

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru