Программирование на C / C++ / Лабораторные работы2 / УГАТУ АСОИ-136 пр-ние на ЯВУ лаб.№3 вар.№__Макс
.docУфимский государственный авиационный технический университет
Кафедра АСУ
Отчёт
по лабораторной работе №3
по дисциплине ”Программирование на ЯВУ”
вариант №__
Выполнил: студент группы АСОИ-136
Макаров М. Проверил: доцент кафедры АПРиС
Фёдорова Н.И.
Уфа 2007
Тема: Обработка целых данных
Цель работы: Знакомство и получение навыков обработки целых данных
в языке С++.
Вариант №__.
Задание:
Среди простых чисел, не превосходящих заданного числа N найти такие, десятичное представление которых содержит убывающую последовательность цифр.
Решение:
Нужно каждую цифру заданного числа x(1…N) сравнить с цифрой разрядом выше: больше она или меньше; если каждая цифра числа x меньше впереди стоящей, то выводим на экран это число, как удовлетворяющее условию задачи.
Блок-схема
Текст программы на С++
#include<iostream.h>
#include<conio.h>
#include<math.h>
void main()
{long N,x,y;
long fl1,fl2,i,j,ind,k1,k2;
clrscr();
cout<<"введите переменую N\n";
cout<<"N=";
cin>>N;
fl1=1;
fl2=1;
ind=0;
for(x=31;x<=N;x++)
{
for(i=2;i<x;i++)
{
if((x%i)==0)
fl1=0;
}
y=x;
if(fl1==1)
{
for( ;y>0; )
{
k1=y%10;
k2=((y/10)%10);
if(y<10)
if(k2==0)
k2=k1+1;
if(k1>=k2)
fl2=0;
y/=10;
}
if(fl2==1)
{ind+=1;
cout<<endl<<" "<<ind<<"-e chislo="<<x;
}
fl2=1;
}
fl1=1;
}
getch();
} Проверка:
N=100; Результат: 31, 41, 43, 53, 61, 71, 73, 83, 97;
N=1000; Результат: 31, 41, 43, 53, 61, 71, 73, 83, 97,421, 431, 521, 541, 631, 641, 643, 653, 743, 751, 821, 853, 863, 941, 953, 971, 983.