Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Lev93
1 / 1 / 0
Регистрация: 09.02.2013
Сообщений: 51
#1

Нахождение минимального элемента массива. Перевести с Паскаля на С++ - C++

16.01.2014, 00:08. Просмотров 467. Ответов 7
Метки нет (Все метки)

кто поможет переделать на С++ эту программу?
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
Program MinElement;
Type Vector=Array [1..100] of integer;
Var   min : integer;
      i,n : byte;
      A : Vector;
{процедуры и функции}
{_____________________}
{Ввод элементов массива}
Procedure InputData;
  begin
    Readln(n);
    For i:=1 to n do
      Read(A[i]);
  end;
{_____________________}
{Находит минимальный элемент}
Procedure MinElem;
  begin
    min:=A[i];
    For i:=n downto 1 do
      If min<0 Then min:=A[i];
  end;
{_______________________}
{основная}
Begin
  Assign(input,'input.txt');Reset(input);
  Assign(output,'output.txt');Rewrite(output);
  InputData;
  MinElem;
  Writeln(min);
  Close(input);
  Close(output);
End.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.01.2014, 00:08
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Нахождение минимального элемента массива. Перевести с Паскаля на С++ (C++):

Нахождение минимального элемента массива - C++
Как найти минимальное значение??? #include &lt;windows.h&gt; #include &lt;iostream&gt; using namespace std; void main () { ...

Нахождение минимального элемента массива - C++
Изучаю С++... Помогите решить задачку!! В одномерном массиве, состоящем из n вещественных элементов, вычислить: 1) минимальный элемент...

Рекурсия: нахождение минимального элемента массива - C++
Определить рекурсивную функцию,возвращающую минимальный элемент массива.Использовать её для одномерного массива,содержащего n целых...

Перевести из паскаля нахождение строк с наибольшим количеством нулей - C++
Var i,j,n,m,max,imax:integer; A:array of integer; Function Kol(i:integer):byte; Var j,k:integer; Begin k:=0; For...

Вычислить произведение P = Хmin*Ymin минимального элемента xmin = min{xi} массива xi и минимального элемента ymin = min{yi} массива yi - C++
Вычислить произведение P = Хmin*Ymin минимального элемента xmin = min{xi} массива xi и минимального элемента ymin = min{yi} массива yi, i =...

Нахождение минимального элемента в стеке - C++
Вроде стек получилось реализовать, а вот как найти минимальный элемент без понятия. #include &lt;iostream.h&gt; #include &lt;stdlib.h&gt; ...

7
abit
272 / 271 / 36
Регистрация: 03.02.2013
Сообщений: 770
16.01.2014, 01:56 #2
мне кажестя что этот код ошибочен, что вы дали
ну как минимум эта строка:
Pascal
1
If min<0 Then min:=A[i];
может что-то не догоняю, но условие min<0 бредово

да и вообще смысл процедуры MinElem не ясен, она видимо ничего не возвращает никуда

вот перевёл всё начало на С++ так как вижу:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
#include <vector>
 
size_t n=100;
std::vector<int> A;
 
void InputData()
{
    std::cin>>n;
    int tmp;
    for (size_t i=0;i!=n;++i) {
     std::cin>>tmp;
     A.push_back(tmp); }
}
 
int MinElem()
{
    int min(A[0]);
    for (size_t i=0; i!=n;++i)
        if(min>A[i]) min=A[i];
    return min;
}
за вами остался только main()
0
volvo
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
25333 / 16963 / 5364
Регистрация: 22.10.2011
Сообщений: 30,013
Записей в блоге: 6
16.01.2014, 02:17 #3
Цитата Сообщение от abit Посмотреть сообщение
да и вообще смысл процедуры MinElem не ясен, она видимо ничего не возвращает никуда
Процедура вообще никогда ничего никуда не возвращает. Зато MinElem изменяет глобальную переменную Min...
0
abit
272 / 271 / 36
Регистрация: 03.02.2013
Сообщений: 770
16.01.2014, 02:40 #4
Цитата Сообщение от UI Посмотреть сообщение
Процедура вообще никогда ничего никуда не возвращает. Зато MinElem изменяет глобальную переменную Min...
есть мнение что глобальные переменные тут не нужны, это моветон

таким стилем я уже наблюдал как хранят всякие переменные циклов i,j,k глобальными, сейчас минимальный элемент хранят глобальным, завтра что, будем хранить глобальными tmp-переменную в обмене элементов массива, а послезавтра будем содержимое регистров eax хранить глобально? нет, уж увольте, пройдите тему "область видимости переменных" прежде чем браться за программирование
0
volvo
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
25333 / 16963 / 5364
Регистрация: 22.10.2011
Сообщений: 30,013
Записей в блоге: 6
16.01.2014, 02:51 #5
Цитата Сообщение от abit Посмотреть сообщение
есть мнение что глобальные переменные тут не нужны, это моветон
Это в теме не обсуждается. Насчет "моветон это или нет" - в Холивары. Для совсем начинающего - никакого особого криминала не вижу. Никто "экспертом" не родился.
1
abit
272 / 271 / 36
Регистрация: 03.02.2013
Сообщений: 770
16.01.2014, 02:56 #6
Цитата Сообщение от UI Посмотреть сообщение
Это в теме не обсуждается. Насчет "моветон это или нет" - в Холивары. Для совсем начинающего - никакого особого криминала не вижу. Никто "экспертом" не родился.
как это нет криминала? Вы в курсе что такое мультипоточность? как вы думаете поведёт себя подобный код, где два процесса будет одновременно искать в разных массивах минимальный элемент который хранится в глобальной переменной?
0
MrGluck
Модератор
Эксперт CЭксперт С++
7789 / 4829 / 750
Регистрация: 29.11.2010
Сообщений: 13,182
16.01.2014, 03:14 #7
Цитата Сообщение от UI Посмотреть сообщение
Для совсем начинающего - никакого особого криминала не вижу.
Легче научиться, чем переучиться. Такое надо с самого начала прививать чтобы потом не тратить кучу времени на выявление ошибок ввиду отсутствия логики нормального построения программы. Считаю, что замечание уместно.

Вот пример: считывает 10 чисел с файла и выводит минимальное в результирующий файл. Сделано с перенаправлением потоков.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include <fstream>
#include <iostream>
 
void input(int *a, const int size)
{
    for (int i=0; i < size; i++)
        std::cin >> a[i];
}
 
int min_element(const int *a, const int size)
{
    int min = a[0];
    for (int i=1; i < size; i++)
        if (a[i] < min)
            min = a[i];
    return min;
}
 
int main()
{
    std::ifstream ifs("input.txt");
    std::ofstream ofs("output.txt");
    std::cin.rdbuf(ifs.rdbuf());
    std::cout.rdbuf(ofs.rdbuf());
 
    const int size = 10;
    int arr[size];
    input(arr, size);
    std::cout << "Min element: " << min_element(arr, size);
}
0
abit
272 / 271 / 36
Регистрация: 03.02.2013
Сообщений: 770
16.01.2014, 03:18 #8
если мы говорим о начинающем в Си, Бейсике, Дельфи - один разговор, но если речь идёт о C++, fpc, haskell, python - то область видимости нужно понимать прежде чем браться за язык, это далеко не сложная тема, засорять глобальное пространство имён можно разве что на hello world, а всякие using namespace использовать очень редко внутри чего-то а не глобально, ибо мой опыт уже подсказывает что переучить Сишника в C++ очень сложно... он постоянно лепет всякую фигню, вот вам пример совсем недавнего кода, встретил два дня назад у одного из своих студентов:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
// Согласно ТЗ этот код должен заменить табуляцию на пробелы по всей строке, 
// убрать ведущие и конечные пробелы в строке, а также
// раскрыть кавычки, если в них заключена строковая константа.
string Config::trim(string &src){
 
    char * ptr=(char *)src.c_str();
    char * dst;
 
    for(int i=0;i<strlen(ptr);i++){
        if(ptr[i]<32) ptr[i]=32;
    }
 
    for(int i=0;i<strlen(ptr);i++){
        if(ptr[i]>32){
            dst=ptr+i;
            break;
        }
    }
    for(int i=strlen(dst);i>0;i--){
        if(dst[i]>32){
            dst[i+1]=0;
            break;
        }
    }
 
    src=dst;
 
    if(src.c_str()[0]=='"') src.erase(0,1);
    if(src.c_str()[src.length()-1]=='"') src.erase(src.length()-1,1);
 
    return src;
}
я пока читал - офигивал, можно в учебники вносить как нельзя писать)
это чисто Сишный бред... особенно доставило то, что он оформил src как ссылку и не константую и несмотря на то что он изменил содержимое кучей всяких c_str и внимание src = (char *) !!! тут:
C++
1
   src=dst
так он её ещё и возвратил зачем-то

вот пример развития таких "начинающих" которых Вы тут защищаете, нужно сразу им по рукам бить, через год спасибо скажут
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.01.2014, 03:18
Привет! Вот еще темы с ответами:

Определить номера минимального элемента массива и элемента, являющегося минимальным без учета этого элемента. - C++
Дан массив. Определить номера минимального элемента массива и элемента, являющегося мини-мальным без учета этого элемента.

Матрицы,нахождение максимального и минимального элемента - C++
Здравствуйте!Помогите пожалуйста с программой,по условию нужно найти максимальный и минимальный элемент матрицы и разместить их на первом и...

Нахождение минимального элемента в строке матрицы - C++
Вот задание: Дана целочисленная матрица А размерности mхn. Найти наименьшее целое число k, обладающее таким свойством: хотя бы в одной...

Нахождение максимального и минимального элемента в списке - C++
#include &lt;iostream&gt; #include &lt;conio.h&gt; #include &lt;string.h&gt; #include &lt;windows.h&gt; using namespace std; void loadLib(); void...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru