Главная » 2017 » Май » 6 » материал
12:42
материал
№1
Требовалось написать программу, которая решает уравнение относительно х для любого числа с, введенного с клавиатуры. Все числа считаются действительными. Программист торопился и написал программу неправильно.



1) Приведите пример таких чисел с, х, при которых программа неверно решает поставленную задачу.
2) Укажите, какая часть программы является лишней.
3) Укажите, как нужно доработать программу, чтобы не было случаев ее некорректной работы. (Это можно сделать несколькими способами, поэтому можно указать любой способ доработки исходной программы).

РЕШЕНИЕ
• Если с=0, то ответ будет “x=0 и x=-0” .
• Лишнее “Введите значение x”.
• CИ
void main(void)
{ float c,x;
scanf ("%f %f",&c);
if (c>0)
printf("нет решений");
else
if (c<0)
printf("x=%f или x=%f",sqrt(-с), -sqrt(-c));
if (c=0)
cin<< 0;
cin.get();cin.get();
}

№2
Дано целое не­от­ри­ца­тель­ное число N. Не­об­хо­ди­мо вы­ве­сти два не­от­ри­ца­тель­ных целых числа, ко­то­рые при воз­ве­де­нии к квад­рат дадут результаты, наи­бо­лее близ­кие к N. Например, для N = 2016 нужно вы­ве­сти числа 44 и 45 (442 = 1936, 452 = 2025), а для N = 9 нужно вы­ве­сти числа 2 и 3.

1. Напишите, что вы­ве­дет эта про­грам­ма при вводе N = 2016.
2. На­зо­ви­те зна­че­ние N, при вводе ко­то­ро­го про­грам­ма вы­ве­дет вер­ный ответ. Ука­жи­те этот ответ.
3. Най­ди­те в про­грам­ме все ошиб­ки (их может быть одна или несколько). Для каж­дой ошиб­ки вы­пи­ши­те строку, в ко­то­рой она допущена, и при­ве­ди­те эту же стро­ку в ис­прав­лен­ном виде. Достаточно ука­зать ошиб­ки и спо­соб их ис­прав­ле­ния для од­но­го языка программирования.
1) 1936 и 2025.
2) 0 ; 0 и 1.
3) НЕВЕРНО printf("%d %d", (k-1)*(k-1), k*k);
ВЕРНО printf("%d %d", (k-1), k);
№3
Дан целочисленный массив из 20 элементов. Элементы массива могут принимать целые значения от 0 до 10000 включительно. Опишите на естественном языке или на одном из языков программирования алгоритм, позволяющий найти и вывести максимальное значение среди трёхзначных элементов массива, не делящихся на 3. Если в исходном массиве нет элемента, значение которого является трёхзначным числом и при этом не кратно 3, то вывести сообщение «Не найдено».

... max=0;
for (i=0; i<N; i++)
{
if( (a[i]%3==0)&&(a[i]/1000==0)&&(a[i]/100!=0)&&(max<a[i]))
max=a[i];
}
cout << max;
cin.get();cin.get();

№4
Опишите на рус­ском языке или одном из язы­ков про­грам­ми­ро­ва­ния ал­го­ритм под­сче­та мак­си­маль­но­го ко­ли­че­ства под­ряд иду­щих чет­ных эле­мен­тов в це­ло­чис­лен­ном мас­си­ве длины 30.
#include <iostream>
using namespace std;
int main()
{
int A[30], N=30;
int k=0, max=0;
for (int i=0; i<N; i++)
{
cin >> A[i];
}
for (int i=0; i<N; i++)
{
if (A[i]%2==0)
k++;
else
if (max<k)
max=k;
}
cout <<max;
cin.get();cin.get();
}
Просмотров: 214 | Добавил: evgenich2281 | Рейтинг: 0.0/0
Всего комментариев: 0
avatar