Программирование в среде RobоtC. Занятие 4: Оператор вывода

Содержание

Слайд 2

Тема занятия

На прошлом занятии мы познакомились с оператором вывода на дисплей

Тема занятия На прошлом занятии мы познакомились с оператором вывода на дисплей
nxtDisplayTextLine. Узнали про различные форматы вывода чисел, модификаторы и научились выводить информацию на дисплей NXT. Точнее говоря, мы научились выводить не только на физический дисплей, но и на эмулированный, т.е. на его виртуальную копию.
Материала было много и времени на самостоятельное решение задач не осталось.
Сегодняшнее занятие целиком посвящено самостоятельному решению задач. В конце презентации находятся ответы и комментарии к ним.

Слайд 3

Задача 1

Предположим, что в программе объявлены следующие переменные:
int eight =

Задача 1 Предположим, что в программе объявлены следующие переменные: int eight =
8;
char symbol = ‘!’;
float pi = 3.1415926;
Замените знаки ? на спецификаторы формата в следующих вызовах функции nxtDisplayTextLine.
nxtDisplayTextLine(1, ? , eight);
nxtDisplayTextLine(3, ?, pi);
nxtDisplayTextLine(5, ?, symbol);

Слайд 4

Задача 2 Cоотнесите спецификатор и значение при выводе, если float f = 3.1415926;

Задача 2 Cоотнесите спецификатор и значение при выводе, если float f =
int N = 512;

nxtDisplayTextLine(1,"%d",N);
nxtDisplayTextLine(1,"%.5d",N);
nxtDisplayTextLine(1,"%5.0f",f);
nxtDisplayTextLine(1,"%5.2f",f);

00512
3
3.14
512

Слайд 5

Задача 3

В программе переменные x, y, res, ch_eq, ch_plus, ch_minus, ch_div,

Задача 3 В программе переменные x, y, res, ch_eq, ch_plus, ch_minus, ch_div,
ch_mul объявлены следующим образом:
int x = 3, y = -4;
char ch_eq = '=';
char ch_plus = '+';
char ch_minus = '-';
char ch_div = '/';
char ch_mul = '*';
float res = -0.75;
Выберите на следующем слайде варианты вызова функции nxtDisplayTextLine, которые синтаксически верны, не вызовут ошибок или предупреждений при компиляции и обеспечат прогнозируемый вывод (числа отобразятся как числа, а символы как символы):

Слайд 6

Задача 3

1. nxtDisplayTextLine(1,"%d %c %d %c %d", x, ch_plus, y, ch_eq, x+y);
2.

Задача 3 1. nxtDisplayTextLine(1,"%d %c %d %c %d", x, ch_plus, y, ch_eq,
nxtDisplayTextLine(1," %c %d %d",ch_minus, x, y, x-y);
3. nxtDisplayTextLine(1,"Result of %c for %d %d = %5.2f", ch_div, x, y, res);
4. nxtDisplayTextLine(1,"%c %d %d %d",ch_minus, x, y, x-y)
5. nxtDisplayTextLine(1,"%c %d %d %d",ch_minus, x, y, x-y);

Слайд 7

Задача 4

Помогите Шерлоку Холмсу написать программу-визитку. Программа должна выводить на экран

Задача 4 Помогите Шерлоку Холмсу написать программу-визитку. Программа должна выводить на экран
информацию о координатах его дома на Бейкер Стрит:
S.Holmes:  51grad 31'25.48" N 0 grad 9'29.93" W
На выводе должно получиться:

Слайд 8

Задача 5

task main() {
char plus='+', minus='-', mult=‘*’, div='/';
int a=3,b=2;

Задача 5 task main() { char plus='+', minus='-', mult=‘*’, div='/'; int a=3,b=2;
float c=3,d=2;
nxtDisplayTextLine(0,"act one two\t\tres");
nxtDisplayTextLine(1,"%c\t%d\t%d\t%d",plus,a,b,a+b);
nxtDisplayTextLine(2,"%c\t%d\t%d\t%d", minus,a,b,b-a);
nxtDisplayTextLine(3,"%c\t%d\t%d\t%d", mult,a,b,a*b);
nxtDisplayTextLine(4,"%c\t%f\t%f\t%f", div,c,d,c/d);
}
Дополните в этой программе спецификаторы формата соответствующими модификаторами, чтобы вывод на экран выглядел так, как на следующем слайде:

Слайд 9

Задача 5

Задача 5

Слайд 10

Задача 6

Следующая программа выводит таблицу Пифагора для чисел от 1 до

Задача 6 Следующая программа выводит таблицу Пифагора для чисел от 1 до
4. Но если вы её запустите, то вывод будет выглядеть некрасиво — столбики "поедут". Добавьте в одну из строк модификаторы формата так, чтобы вывод был такой, как в примере на следующем слайде.
task main()
{
for (int i=1; i<=4; i++)
nxtDisplayTextLine(i,"%-4d%-4d%-4d%-4d",1*i,2*i,3*i,4*i);
}
В программе использован оператор, который мы еще не проходили, не обращайте на него внимание.

Слайд 11

Задача 6

Задача 6

Слайд 12

Ответы к задачам

1. nxtDisplayTextLine(1,“%d”, eight);
nxtDisplayTextLine(3,“%f”, pi);
nxtDisplayTextLine(5,“%c”, symbol);
2. 512;

Ответы к задачам 1. nxtDisplayTextLine(1,“%d”, eight); nxtDisplayTextLine(3,“%f”, pi); nxtDisplayTextLine(5,“%c”, symbol); 2. 512;
00512; 3; 3.14
3. 1; 3; 5.
4.
task main()
{
nxtDisplayTextLine(0,"S.Holmes:");
nxtDisplayTextLine(1,"51grad");
nxtDisplayTextLine(2,"31'25.48\" N");
nxtDisplayTextLine(3,"0 grad");
nxtDisplayTextLine(4,"9'29.93'' W");
}

Слайд 13

Ответы к задачам

5.
task main()
{
char plus='+', minus='-', mult='*', div='/';
int a=3,b=2;

Ответы к задачам 5. task main() { char plus='+', minus='-', mult='*', div='/';

float c=3,d=2;
nxtDisplayTextLine(0,"act one two\t\tres");
nxtDisplayTextLine(1,"%3c\t%3d\t%3d\t%4d",plus,a,b,a+b);
nxtDisplayTextLine(2,"%3c\t%-3d\t%-3d\t%.3d", minus,a,b,b-a);
nxtDisplayTextLine(3,"%3c\t%3d\t%-3d\t%.4d", mult,a,b,a*b);
nxtDisplayTextLine(4,"%3c\t%-3.0f\t%3.0f\t%1.2f", div,c,d,c/d);
}
6.
task main()
{
for (int i=1; i<=4; i++)
nxtDisplayTextLine(i,"%-4d%-4d%-4d%-4d",1*i,2*i,3*i,4*i);
}