Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Задача 23. Программа строит на экране простой график затухающих колебаний, определяемый функциейСодержание книги
Похожие статьи вашей тематики
Поиск на нашем сайте
на отрезке [0, 2.16] c шагом d=0.09. Ось OX графика направлена вертикально вниз, а ось OY – по горизонтали вправо (подразумевается). В каждой строке выводится “кусочек” оси OX (символ | в 40-й колонке экрана) и звездочка – в позиции, соответствующей очередному значению функции. Обратите внимание на формирование переменного формата вывода символа * в функции printf().
// Программа отлажена в Visual Studio 2005 (20.04.2008) #include "stdafx.h" #include <stdio.h> #include <conio.h> #include <math.h> const int PI = 3.14159; int main() { double x,y,d; int T; d=0.09; x=0; while(x <= 2.16) { y=exp(-x)*sin(2*PI*x); T=(int)18*y + 40; if(y >= 0) { printf("%*c",40,'|'); printf("%*c\n",T-40,'*'); } else { printf("%*c",T,'*'); printf("%*c\n",40-T,'|'); } x=x+d; } getch(); return 0; }
Построенный программой график имеет вид, показанный ниже.
Задача 24. При таможенном досмотре с пассажира взыскивают госпошлину, которая составляет 5% от общей стоимости провозимых им товаров, если последняя превышает 1400 долларов. Составить программу, которая последовательно вводит по запросу стоимость провозимых товаров для каждого пассажира и вычисляет сумму пошлины.
// Программа отлажена в Visual Studio 2008 (2.05.2008) #include <conio.h> #include <iostream> using namespace std;
const int LEN=80; int main() { float s,n; char ch; char fio[LEN]; // Устанавливаем локализацию для выходного потока wcout.imbue(locale("rus_rus.866")); // Выводим строку на русском!
do { wcout<< L"\nВаша фамилия? "; cin>>fio; wcout<<fio<<L", cтоимость ваших товаров?: "; cin>>s; if (s<=0) break; cout<<fio; if (s<=1400) wcout<<L", проходите. Не задерживайте очередь"; else wcout<<L", платите в кассу $"<<s*0.05;
wcout<<L"\nЕсть еще пассажиры(y/n)? "; ch=getch(); } while(ch=='y' || ch == 'Y'); getch(); return 0; }
Задача 25. Программа выводит на экран кодовую таблицу ASCII в 4 колонки, с использованием постраничного вывода на экран.
#include <stdio.h> #include<conio.h> int main() { int line=1; unsigned char ch; clrscr(); for (ch=32; ch<255; ch++) { printf("%c\t %c - %d",(ch%4 == 0)?'\n ':' ',ch,ch); line++; // постраничная печать if (line/4 == 23) { line = 1; printf("\nДля продолжения -Enter"); getch(); clrscr(); } } getch(); return 0; }
Задача 26. Программа на чёрном экране пользователя изображает падение букв английского алфавита (с указанием рядом их кода ASCII) по центру экрана на строку, составленную из символов «звёздочка». Причём, на первой строке появляется буква А, при переходе на вторую строку она превращается в В, затем — в С и так далее. Для позиционирования курсора в заданную точку экрана (x, y) в среде Borland C++ Builder использована библиотечная функция gotoxy(x, y).
// Программа отлажена в Borland C++ Builder 6 #include <iostream.h> #include <conio.h> #include <stdio.h> int main() { clrscr(); int line=1, symbol=65; while (line<=26) { gotoxy(1,26); cout<<"\t\t\t*****************************************"; gotoxy(39,line); printf("%c=%d",symbol,symbol); Sleep(500); clrscr(); line++; symbol++; } getch(); return 0; }
Задача 27. Вывести на экран строку из звёздочек, над которой слева направо поочерёдно появляются символы с кодами 001 и 002 кодовой таблицы ASCII, причём это движение сопровождается системным звуком с тоном, меняющимся от 130 гц вверх с шагом 16 гц. #include <iostream.h> #include <conio.h> #include <stdio.h> #include <dos.h> int main() { int k = 1; char s ='\001', v ='\002'; while (k<=78) { clrscr(); gotoxy(1,24); cout<<"\t\t\t*********************************************"; gotoxy(k,12); printf("%c",(k%2==0)? s:v); Beep(130+((k++)-1)*16, 400);
} getch(); return 0; }
Задача 28. Символ «*» движется по параболе y = –x 2. Движение начинается в левом нижнем углу экрана, а заканчивается в правом нижнем.
// Программа отлажена в Borland C++ Builder 6 #include <conio.h> #include <iostream.h> #include <dos.h> int main() { int x,y; float a = -39; clrscr(); while (a<39) { y=a*a/64; x=a+40; gotoxy(x,y); cout<<"*"; Sleep(100); a++; } getch(); return 0; }
Задача 29. По преданию, индийский правитель Шерам, большой ценитель шахмат, решил наградить изобретателя шахмат Сета. Тот попросил выдать награду зерном: за первую клетку шахматной доски одно зерно, за вторую – два и т.д., точнее, за каждую следующую клетку – в два раза больше, чем за предыдущую. К удивлению великого раджи, в стране не хватило зерна, чтобы выполнить “скромное ” пожелание изобретателя шахмат. Далее приведена программа, последовательно подсчитывающая количество зерен за каждую клетку и их общее количество за все 64 клетки. Попутно подсчитывается потребное количество зерна в тоннах, исходя из оценки, что 1 кг зерна содержит примерно 4000 зерен.
// Программа отлажена в Visual Studio 2008 #include<conio.h> #include<stdio.h> #include <iostream> using namespace std;
// Раджа и мудрец int main () { int k=1; double a=1,t,s=0L;
t=a/4000000; while(k<=64) { printf("%20d %30.0lf %20.3lf\n",k,a,t);
if(k%22==0) { printf("Press Enter...\n\n"); getch();
} a=a*2; k=k+1; t=a/4000000; s=s+t; } printf("\n\t TOTAL \t %d \t\t %.3lf",k-1,s); getch();return 0; }
Задача 30. Программа позволяет угадать возраст Вашего дедушки, который может находиться в интервале от 45 до 109 лет. В программе используются две библиотечные функции: функция random(num), где num имеет тип int, возвращает случайное целое значение из диапазона от 0 до (num – 1); функция randomize инициализирует генератор случайных чисел.
// Программа отлажена в Borland C++ Builder 6 (май 2008) #include <stdio.h> #include <conio.h> #include <iostream.h> #include <stdlib.h> int main() { int high,mid,low,k=1,year,found; char ch; do { randomize(); found = 0; low = random(10)+45; high = random(30)+80; cout<<"Хотите, я угадаю, сколько лет "<<endl; cout<<"(от "<<low<<" до "<<high<<") Вашему дедушке(y/n)"<<endl; k=1; getch(); while (low<=high &&!found) { mid = (low+high)/2; cout<<"Вашему дедушке "<<mid<<" лет(y/n)?"; cin>>ch; if (ch == 'y' || ch == 'Y') { cout<<"\n Ура! Я угадал за "<<k<<" попыток"; found = 1; } Else { m2: cout<<"Больше(>) или меньше(<)? "; cin>>(ch); if (ch == '>') low = mid+1; Else if (ch=='<') high=mid-1; Else { cout<<"Нажмите Shift+знак(< или >)"<<'\n'; goto m2; } k++; } } cout<<"\n\n еще(y/n)? "; ch=getch(); } while (ch=='y' || ch=='Y'); return 0; }
Задача 31. Разменять заданную сумму денег минимальным количеством купюр, если в обиходе имеются купюры достоинством в 100, 50, 20, 10, 5, 2 и 1 грн.
// Программа отлажена в Visual Studio 2008 #include<conio.h> #include<stdio.h> #include <iostream> using namespace std;
int main() { int d; bool p = false; cout<<" \nВведите сумму для размена "; cin>>d; while(!p) if (d>=100) { d=d-100; cout<<' '<<100; } else if(d>=50) { d=d-50; cout<<' '<<50; } else if (d>=20) { d=d-20; cout<<' '<<20; } else if(d>=10) { d=d-10; cout<<' '<<10; } else if (d>=5) { d=d-5; cout<<' '<<5; } else if (d>=2) { d=d-2; cout<<' '<<2; } else if (d>=1) { d=d-1; cout<<' '<<1; } else p=true; getch(); return 0; }
Задача 32. Пусть требуется открыть в банке R-процентный депозитный счет на на сумму P долларов. Предполагая, что вся прибыль остается на депозите счета, рассчитать и выдать на экран сумму денег A на счете на конец каждого года за N лет. Расчетная формула: A=P(1+R)N Это — программа вычисления так называемых сложных процентов, выводящая результат в виде таблицы по годам с итоговой строкой. #include <iostream.h> #include <conio.h> #include <stdio.h> #include <math.h> int main() { clrscr(); float p, s, r, n, a; cout<<"Сколько денег Вы сдаёте? "; cin>>p; cout<<"На сколько лет? "; cin>>n; cout<<"Какова ставка банка в процентах? "; cin>>r; cout<<" Годы Вклад на депозите"<<"\n"; for (s = 1; s<=n; s++) { a = p*pow((1+r/100),s); printf("%12.0f %25.2f\n",s,a); } cout<<"\n"; printf("Итого %6.0f %25.2f\n",n,a); getch(); return 0; }
Задача 33. Программа производит обратный отсчёт секунд. Для задержки выполнения программы на заданное число миллисекунд использована функция Sleep(). #include <iostream.h> #include <conio.h> #include <dos.h> int main() { clrscr(); int m; for (m=5; m>0; m--) { Sleep(1000); gotoxy(38,20-m); cout<<m<<" сек.\n"; } Sleep(1000); gotoxy(37,21-m); cout<<"П У С К!"; getch(); return 0; }
Задача 34. В этом примере демонстрируется применение функций textbackground (цвет фона) и textcolor (цвет символа), которые определяют цвет фона на экране и цвет выводимых символов соответственно (в среде Borland C++ Builder 6). Для установки подходящего цвета используйте числовые либо символьные константы, приведенные ниже в таблице.
Здесь же используется функция создания текстового окна: Window(x1, y1, x2, y2), определяющая область экрана, которая в дальнейшем будет рассматриваться функциями вывода как весь экран. Здесь x1, y1 — координаты левого верхнего, а х2, у2 — координаты правого нижнего угла окна. Сразу после выполнения процедуры курсор помещается в левый верхний угол окна, а само окно очищается (заполняется цветом фона). В созданном окне устанавливается локальная система координат (левый верхний угол имеет координаты (1,1)).
// Программа отлажена в Borland C++ Builder 6 #include<iostream.h> #include<stdlib.h> #include<conio.h> #include<dos.h>
void main() { char name[20]; textbackground(0); clrscr(); //Желтые буквы на синем фоне textbackground(3); window(1,1,35,11); textcolor(14); clrscr(); cprintf(" Введи свое имя\n "); cprintf("\r и нажми Enter "); scanf(“%s”,name); randomize(); // Случайный выбор цвета do { textbackground(random(7)+1); window(40,12,75,22); textcolor(random(15)+1); clrscr(); gotoxy(6,8); cprintf("Привет, %s",name); Sleep(1000); } while (!kbhit()); //пока не нажата ни одна клавиша textmode(3); // Сброс всех установок getch(); }
Задача 35. Шуточная программа, производящая обратный отсчёт секунд, а затем создающая иллюзию форматирования диска. // Программа отлажена в Borland C++ Builder 6 #include <iostream.h> #include <conio.h> #include <dos.h> int main() { clrscr(); int m,n; char s=176,t=178; for (m=5; m>0; m--) { Sleep(1000); gotoxy(38,20-m); cout<<m<<" sek\n"; } Sleep(1000); gotoxy(32,21-m); cout<<"Formatting disk C: "<<"\n"; Sleep(1000); gotoxy(27,22-m); cout<<"All data will be destroyed!"<<"\n"; Sleep(1000); for (n=1;n<=80;n++) { gotoxy(n,23-m); cout<<s; } for (n=1;n<=80;n++) { Sleep(200); gotoxy(n,23-m); cout<<t; } for (n=1;n<=80;n++) { gotoxy(n,23-m); cout<<'.'; } gotoxy(32,24-m); cout<<"FORMAT COMPLETED!!!"<<"\n"; getch(); return 0; }
Задача 36. Программа реализует так называемый «прогресс-индикатор»: сначала в 12 строке экрана строится линейка из 80 символов, заполненная символом с кодом 176, а затем по этой линейке движется символ с кодом 178, закрашенный жёлтым цветом, с задержкой 0.5 сек. Внизу после каждых 8 выведенных символов сообщается об объеме выполненной работы (в %). Предлагаем самостоятельно объединить эту задачу с предыдущей (просто добавить вывод сообщения о мнимом форматировании диска). На синем фоне Windows-окна зрелище не для слабонервных.
// Программа отлажена в Borland C++ Builder 6 #include <stdio.h> #include <conio.h> #include <dos.h> #include <iostream.h> #include <stdlib.h> int main() { int k,i; char c1=176,c2=178; textbackground(6); //цвет фона textcolor(14); //цвет символов clrscr(); //нарисовать дорожку gotoxy(1,12); for (i=1;i<=80;i++) //cout<<c1; cprintf(“%c”,c1); //а теперь жёлтый индикатор for (k=1;k<=80;k++) { gotoxy(k,12); //cout<<c2; cprintf(“%c”,c2);
if (k%8==0) { gotoxy(35,15); //cout<<k/8*10<<"% сделано"; cprintf(“%d % сделано”, k/8*10);
} Sleep(500); } getch(); return 0; }
Задача 37. Автоморфными называются числа, которые содержатся в младших разрядах их квадрата, например: 52 = 25, 252 = 625
|
||||||||||
Последнее изменение этой страницы: 2016-12-16; просмотров: 630; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.118.10.75 (0.009 с.) |