C/C++ - [решено] Четыре задачи начального уровня
-
Мусик
C/C++ - [решено] Четыре задачи начального уровня
мне нужно решить задачи в Pascal
1)найти f(х)
1. х^2 если х кратно 3
2.х, если при делении на 3 остаток 1
3.х/3
2)Найти наибольший общий делитель.
3)Напечатать строку из к случайных символов
4) Стороны прямоугольника заданы натуральными числами м и к. Составить программу, которая находит на сколько квадратов можно разделить данный прямоугольник, если от него каждый раз отрезается квадрат мах площади.
За ранее спасибо))))
1)найти f(х)
1. х^2 если х кратно 3
2.х, если при делении на 3 остаток 1
3.х/3
2)Найти наибольший общий делитель.
3)Напечатать строку из к случайных символов
4) Стороны прямоугольника заданы натуральными числами м и к. Составить программу, которая находит на сколько квадратов можно разделить данный прямоугольник, если от него каждый раз отрезается квадрат мах площади.
За ранее спасибо))))
-
iskander-k
Re: C/C++ - [решено] Четыре задачи начального уровня
Для начала посмотрите
здесь
и исправьте заголовок.-
Drongo
Re: C/C++ - [решено] Четыре задачи начального уровня
Мусик, Какой-то непонятный набор заданий. Да и
Код:
Код:
название темы
оставляет желать лучшего. Кстати, на каком языке это всё нужно написать?2) Решение
Код:
Код: Выделить всё
//Программа нахождения наибольшего общего делителя
#include
using std::cout;
using std::cin;
using std::endl;
// Функция нахождения НОД
int ged(int, int);
int main()
{
int z,
num1,
num2,
result;
coutz;
while(z != -1){
coutnum1;
coutnum2;
result = ged(num1, num2);
coutТа же задача по русски
Код:
Код: Выделить всё
//Программа нахождения наибольшего общего делителя
#include
#include
using std::cout;
using std::cin;
using std::endl;
// Функция перекодировки символов русского языка
char* Rus(const char* text);
char bufRus[256];
char* Rus(const char* text)
{
CharToOem(text, bufRus);
return bufRus;
}
// Функция нахождения НОД
int ged(int, int);
int main()
{
int z,
num1,
num2,
result;
coutz;
while(z != -1){
coutnum1;
coutnum2;
result = ged(num1, num2);
cout-
Arrest
Re: C/C++ - [решено] Четыре задачи начального уровня
Алгоритм решения №4 (привожу исключительно функцию нахождения без проверок ошибок и ввода/вывода), C:
Код:
Алгоритм решения №1(аналогично), C
:
Код:
Задачу 3 решать самостоятельно, генеришь случайное число от 0 до 25, добавляешь к индексу первой буквы ASCII и кастуешь в char.
Код:
Код: Выделить всё
int getsquares(int x, int y){
int count;
while(x>0 && y>0){
if(x>y){
x -= y;
}else{
y -= x;
}
count++;
}
return count;
}Алгоритм решения №1(аналогично), C
:Код:
Код: Выделить всё
float f(int x){
if(x % 3 == 0){
return x*x;
}
if(x % 3 == 1){
return x;
}
return x/3;
}Задачу 3 решать самостоятельно, генеришь случайное число от 0 до 25, добавляешь к индексу первой буквы ASCII и кастуешь в char.
-
Drongo
Re: C/C++ - [решено] Четыре задачи начального уровня
Arrest,
Цитата Arrest:
Задачу 3 решать самостоятельно, генеришь случайное число от 0 до 25, добавляешь к индексу первой буквы ASCII и кастуешь в char.
Можешь более подробнее объяснить? Я пробовал решить её, и знаю, что символ
Код:
сделал так, но это не совсем получается верно.
Код:
Мне не понятно выражение.
Цитата Arrest:
добавляешь к индексу первой буквы ASCII
Можно на примере только небольшого фрагмента кода показать как это будет?
Цитата Arrest:
Задачу 3 решать самостоятельно, генеришь случайное число от 0 до 25, добавляешь к индексу первой буквы ASCII и кастуешь в char.
C/C++ - [решено] Четыре задачи начального уровня
Можешь более подробнее объяснить? Я пробовал решить её, и знаю, что символ
Код:
Код: Выделить всё
'A' = 65
..
..
'z' = 122сделал так, но это не совсем получается верно.
Код:
Код: Выделить всё
...
num2 = 65 + rand() % 122;
element = static_cast (num2);
coutМне не понятно выражение.
Цитата Arrest:
добавляешь к индексу первой буквы ASCII
C/C++ - [решено] Четыре задачи начального уровня
Можно на примере только небольшого фрагмента кода показать как это будет?
-
Arrest
Re: C/C++ - [решено] Четыре задачи начального уровня
Код:
как-то вот так
Код: Выделить всё
int randomnum = rand() % 26;
char randomchar = (char)randomnum+65;как-то вот так
-
Drongo
Re: C/C++ - [решено] Четыре задачи начального уровня
Arrest, Точно, сработало. Только хочется, чтобы символы могли печататься в обоих регистрах:
num1 - переменная, которая показывает, сколько случайных символов генирировать..
num1 - переменная, которая показывает, сколько случайных символов генирировать..
Код: Выделить всё
...
for(int i = 0; i <= num1; i++){
num2 = rand() % 26;
element = static_cast <char> (num2 + 65);
cout<<element<<" ";
}
...-
Arrest
Re: C/C++ - [решено] Четыре задачи начального уровня
Код: Выделить всё
for(int i = 0; i <= num1; i++){
num2 = rand() % (26*2); // символы больших и малых регистров стоят подряд, так что можно и так
element = static_cast <char> (num2 + 65);
cout<<element<<" ";
}-
Drongo
Re: C/C++ - [решено] Четыре задачи начального уровня
Arrest,
PHP код:
Значит можно выражение (26 * 2)[/i], заменить на результат произведения = 52.
PHP код:
Код: Выделить всё
num2 = rand() % (26*2);
Значит можно выражение (26 * 2)[/i], заменить на результат произведения = 52.
