Перейти к публикации
  • Сейчас на странице   Всего пользователей: 1   (0 пользователей, 1 гость)

Hed-kun

Программирование, т. 5.1.

Рекомендованные сообщения

Дана последовательность чисел. Найти в ней наименьшее число. Входные данные. Задано сначала число N (количество чисел в последовательности), а затем N чисел. Выходные данные. Выведите наименьшее число.

 

c++ mingW

:geys:поможет кто?

универский быдокод

 

 

#include <stdlib.h>

#include <iostream>

#include <ctime>

using namespace std;

void fun(int N)

{

int* mas;

mas = new int[N];

srand( (unsigned) time( NULL));

for(int i = 0;i < N;i++)

{

mas = rand();

}

for(int i = 0;i < N;i++)

{

cout << mas << ' ' ;

}

int min=mas[0];

for(int i=0;i < N;i++)

{

if (mas<=min)

min=mas;

}

cout<<"\n minimum ="<<min<<"\n";

};

int main()

{

fun(5);

system("pause");

}

 

 

Поделиться сообщением


Ссылка на сообщение

Math.min.apply(Math, nums.slice(1));

ему за функции по жопе надают инфа сотня

Поделиться сообщением


Ссылка на сообщение

Math.min.apply(Math, nums.slice(1));

ему за функции по жопе надают инфа сотня

за сортировку для того, чтобы достать минимальный или максимальный элемент надо пиздить ногами или даже ломом


Колы я выросту - то хочу буты такым як я

5c8bbc85b99e.gif

 

годные смайлы

Поделиться сообщением


Ссылка на сообщение
(изменено)

Дана последовательность чисел. Найти в ней наименьшее число. Входные данные. Задано сначала число N (количество чисел в последовательности), а затем N чисел. Выходные данные. Выведите наименьшее число.

 

c++ mingW

:geys:поможет кто?

Как всегда, искренне помогаю начинающим плюсовщикам :trollface:

#include "stdafx.h"
#include <iostream>
#include <sstream>
#include <vector>
#include <algorithm>
#include <numeric>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
vector<double> vec;
cout << "Input numbers count in sequence\n";

size_t numbers_count;

cin >> numbers_count;
if (numbers_count == 0xcccccccc){
 cout << "Invalid input. Interrupting. \n";
 std::exit(1);
}

cout << "Input numbers sequence \n";
double input_val;
cin.exceptions(std::istream::failbit | std::istream::badbit);
while ( numbers_count --> 0){
 try {
  cin >> input_val;
  vec.push_back(input_val);
 }
 catch (std::istream::failure e) {
  cerr << "Invalid input. Interrupting. Internal exception : " << e.what() << endl;
  std::exit(1);
 }  
}
cout << "Minimum number is : " << * std::min_element(vec.begin(),vec.end()) << endl;
return 0;
}


Изменено пользователем Tinplz

Поделиться сообщением


Ссылка на сообщение

Жесть какая-то

 

чтобы найти минимальный элемент надо подключить шесть библиотек и написать гору кода, в то время как в жс это решается в одну строку

 

хотя, я конечно не сравниваю с++ с жс, понятно что это совршенно разные миры, но все таки, почему бы не сделать такой примитив удобнее для программистов?


Мобильное приложение для продоты https://play.google....id=ru.prodota.m

Поделиться сообщением


Ссылка на сообщение
(изменено)

Жесть какая-то

 

чтобы найти минимальный элемент надо подключить шесть библиотек и написать гору кода, в то время как в жс это решается в одну строку

 

хотя, я конечно не сравниваю с++ с жс, понятно что это совршенно разные миры, но все таки, почему бы не сделать такой примитив удобнее для программистов?

Не путай библиотеки с хедерами. Это все одна стандартная библиотека.

 

Что бы найти минимальный элемент, нужно всего-лишь вызвать функцию min_element, которая вернет итератор(фактически указатель) на него.


Изменено пользователем Tinplz

Поделиться сообщением


Ссылка на сообщение

Ну разница то не велика для наблюдателя. Их все равно надо подлючать.

 

Со стримами то все понятно, но вот

#include <algorithm>

#include <numeric>

 

почему бы их, к примеру, не включать сразу

или тут настолько охуительная модульность, что чтобы складывать числа надо подключать хэдеры? Ну я утрирую конечно.


Мобильное приложение для продоты https://play.google....id=ru.prodota.m

Поделиться сообщением


Ссылка на сообщение
(изменено)

Ну разница то не велика для наблюдателя. Их все равно надо подлючать.

 

Со стримами то все понятно, но вот

#include <algorithm>

#include <numeric>

 

почему бы их, к примеру, не включать сразу

или тут настолько охуительная модульность, что чтобы складывать числа надо подключать хэдеры? Ну я утрирую конечно.

algorithm именно для min_element;

numeric можно убрать, он просто так остался, с прошлых исходников.

 

в алгоритме куча других функций.


Изменено пользователем Tinplz

Поделиться сообщением


Ссылка на сообщение

потому что все разделено на хедеры. У тебя нет ничего, пока ты не подключишь хотя бы один хедер.

Можешь чиселки поплюсовать, но даже в консоль вывести ничего не сможешь.

 

А если включить все сразу, это раздует получившийся бинарник

 

if (numbers_count == 0xcccccccc){

 

:pray: :pray: :pray: :pray: :pray: :pray:


Торжество разума в том, чтобы уживаться с теми, у кого этого разума нет. Вольтер.
Чтобы хорошо высыпаться, нужно спать 8 часов в день. И еще столько же ночью.

Поделиться сообщением


Ссылка на сообщение

if (numbers_count == 0xcccccccc){

 

:pray: :pray: :pray: :pray: :pray: :pray:

Ну это в большинстве нынешних компиляторов - непроинициализированный ансигнд, чем, собственно, и является size_t. :trollface:

Можно, конечно, было ближе к началу выставить флаги ошибок, и просто ловить, но писалось то это все на автомате.

Поделиться сообщением


Ссылка на сообщение
(изменено)

Парни, нид хелп.

Сишку на первом курсе проходил, и очень мало. А тут такую задачку поставили знакомому. В общем первая задача, с которой я в принципе справился, такова:

 

Написать игру. Программа задумывает число 0 – 100. Пользователю необходимо угадать число вводя предполагаемые варианты. После каждой попытки программа выводит одно из сообщений: “число больше введённого” “число меньше введённого” “число угадано с N попытки” Максимальное число попыток – 10. Если число не было угадано с 10 попыток, программа выводит сообщение: “Вы проиграли! Правильный ответ N”

 

 

А вот вторая, вообще хз, как её решать. Вроде бы сначала всё просто, но вот функциональное условие сразу даёт знать, что не всё так просто:

 

То же что 2-е задание, только с другой стороны. Сейчас пользователь задумывает число, а программа пытается угадать. Пользователь НЕ вводит задуманное число в программу!!!

 

Функциональное требование:

Программа должна угадать число с 10 попыток!

 

 

Хелпаните пожалуйста. Ну или хотя бы на мысль натолкните.

 

Уже догадался, бинарным перебором можно.


Изменено пользователем gr1nder

 

The Republic of Belarus

den_flaga_i_gerba_Belarusi_2.jpg

1.JPG

 

 

 

16.10.2013

4R6Zv.png

 

Поделиться сообщением


Ссылка на сообщение

Вообще, там есть алгоритм, типа возможное множество делят на два равных, и если ондо не входит, то делят другое, и так думаю можно уложиться в 10

 

Но я ебал в рот алгоритмы, поэтому накатал свое решение, которое угадывает 90% всего.

 

var SECRET_NUMBER = random(0, 100);
var myNumbers = [],
   biggerThan = 0,
   littleThan = 100;

for(var i = 0; i < 10; i++) {
  var tryNumber = getTryNumber();
  if(tryNumber === SECRET_NUMBER) {
  console.log('WINNER! Right answer is ' + SECRET_NUMBER);
  console.log('You made in in ' + (i + 1) + ' tries');
  break;
  }
  else if(SECRET_NUMBER > tryNumber) {
  biggerThan = tryNumber;
  }
  else {
  littleThan = tryNumber;
  }
  if(i === 9) console.error('Looser! Secret number is ' + SECRET_NUMBER);
}
function getTryNumber () {
  while(1) {
  var result = random(biggerThan, littleThan);
  if(myNumbers.indexOf(result) === -1) {
	 myNumbers.push(result);
	 return result;
  }
  }
}
function random (from, to) {
  return from + ~~(Math.random() * (to - from + 1));
}

 

компьютер сам загадывает и сам пытается угадать


Мобильное приложение для продоты https://play.google....id=ru.prodota.m

Поделиться сообщением


Ссылка на сообщение

Вообще, там есть алгоритм, типа возможное множество делят на два равных, и если ондо не входит, то делят другое, и так думаю можно уложиться в 10

 

Но я ебал в рот алгоритмы, поэтому накатал свое решение, которое угадывает 90% всего.

 

var SECRET_NUMBER = random(0, 100);
var myNumbers = [],
biggerThan = 0,
littleThan = 100;

for(var i = 0; i < 10; i++) {
  var tryNumber = getTryNumber();
  if(tryNumber === SECRET_NUMBER) {
  console.log('WINNER! Right answer is ' + SECRET_NUMBER);
  console.log('You made in in ' + (i + 1) + ' tries');
  break;
  }
  else if(SECRET_NUMBER > tryNumber) {
  biggerThan = tryNumber;
  }
  else {
  littleThan = tryNumber;
  }
  if(i === 9) console.error('Looser! Secret number is ' + SECRET_NUMBER);
}
function getTryNumber () {
  while(1) {
  var result = random(biggerThan, littleThan);
  if(myNumbers.indexOf(result) === -1) {
	 myNumbers.push(result);
	 return result;
  }
  }
}
function random (from, to) {
  return from + ~~(Math.random() * (to - from + 1));
}

 

компьютер сам загадывает и сам пытается угадать

Называется бинарный поиск. По идее с 10 попыток можно угадать любое число от 0 до 1023 :nate:

Поделиться сообщением


Ссылка на сообщение

Math.min.apply(Math, nums.slice(1));

лучше сранивать сразу после ввода введенное число и предыдущее


Публикация отключена

Поделиться сообщением


Ссылка на сообщение

Math.min.apply(Math, nums.slice(1));

лучше сранивать сразу после ввода введенное число и предыдущее

там же файл парсят, так что не сработает

мое решение вообще работает для массива строк файла


Мобильное приложение для продоты https://play.google....id=ru.prodota.m

Поделиться сообщением


Ссылка на сообщение

Math.min.apply(Math, nums.slice(1));

лучше сранивать сразу после ввода введенное число и предыдущее

там же файл парсят, так что не сработает

мое решение вообще работает для массива строк файла

лол. ты реально зря универ забросил. за твое решение ебало бить надо


Колы я выросту - то хочу буты такым як я

5c8bbc85b99e.gif

 

годные смайлы

Поделиться сообщением


Ссылка на сообщение

а что с ним не так?

 

хотя это конечно не решение, ибо тут даже нет чтения файла

ты сортируешь массив чтобы найти минимальный элемент.

сортировка - очень дорогая по времени операция.

минимальный элемент находится за один проход массива


Колы я выросту - то хочу буты такым як я

5c8bbc85b99e.gif

 

годные смайлы

Поделиться сообщением


Ссылка на сообщение

Лол. По моему ты загоняешься.

 

Во-первых, если бы целью была производительность (в случае с гигантскими данными) то я бы конечно сделал по другому.

Во-вторых, если бы целью была производительность, то писать это на жс глупо.

В третьих, какой смысл тогда в библиотечной функции, которая находит минимальный переданный параметр, если ее не использовать?

 

По сути работает Math.min(1, 2, 3,4) а я просто вызываю эту функцию и передаю ей параметры массивом.

 

Я сэкономил время. Уменьшил код. Увеличил читаемость. Потерял капельку времени.

 

Я думаю оно того стоит и я все правильно сделал, а ты просто либо глуппый, что вряд ли, либо толстый, что вероятно.


Мобильное приложение для продоты https://play.google....id=ru.prodota.m

Поделиться сообщением


Ссылка на сообщение

ты мне сейчас напомнил неграмотное было, которое на замечание по поводу правописания отвечает, что оно не на экзамене по русскому.


Колы я выросту - то хочу буты такым як я

5c8bbc85b99e.gif

 

годные смайлы

Поделиться сообщением


Ссылка на сообщение
Гость
Эта тема закрыта для публикации сообщений.

×
×
  • Создать...