Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.06.2011, 21:43   #1
zinulka
Новичок
Джуниор
 
Регистрация: 27.06.2011
Сообщений: 1
По умолчанию переведите на С++

Мне надо сделать прогу.Вот задания:Дан файл , компоненты которого являются действительными числами. Найти:
а) наибольшее из значений компонент;
б) наименьшее из значений компонент с четными номерами;
в) наибольшее из значений модулей компонент с нечетными номерами;
Я сделала на Pascale,а нужно на С++.Кто может перевести,пожалуйста переведите.
Код:
uses crt;
var f:file of real;
    n,i:integer;
    a,mx,cmn,nmn:real;
begin
clrscr;
randomize;
assign(f,'file');
rewrite(f);
write('Сколько чисел ввести в файл n=');
readln(n);
for i:=1 to n do
 begin
  a:=10*random;
  write(f,a);
 end;
writeln('Содержание файла:');
reset(f);
read(f,mx);{прочитаем первое, пока оно макс.}
nmn:=mx;{и мин с нечетным номером}
read(f,cmn);{читаем второе, пока оно минимальное с четным номером}
close(f);
reset(f);
for i:=0 to filesize(f)-1 do
 begin
  read(f,a);
  write(a:0:2,' ');
  if a>mx then mx:=a;
  if odd(i) and(a<cmn)then{счет идет с 0, поэтому нечетные это четные}
  cmn:=a;
  if (i mod 2=0)and(a<nmn)then nmn:=a;
 end;
close(f);
writeln;
writeln('Максимальный элемент=',mx:0:2);
writeln('Минимальный с четным индексом=',cmn:0:2);
writeln('Минимальный с нечетным индексом=',nmn:0:2);
readln
end.

Последний раз редактировалось Stilet; 27.06.2011 в 22:09. Причина: не написала сам код программы
zinulka вне форума Ответить с цитированием
Старый 27.06.2011, 22:14   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Опробуй: http://www.kursovik.com/programming/250022.html
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 27.06.2011, 22:48   #3
igorrr37
 
Регистрация: 31.12.2010
Сообщений: 5
По умолчанию

Цитата:
а) наибольшее из значений компонент;
Код:
#include <iostream>
#include <string>
#include <fstream>
#include <iterator>
#include <algorithm>

int main(){
    std::ifstream ifs("1.txt");
    if(!ifs){std::cerr<<"File not found\n"; return 1;}
    std::cout<<*std::max_element((std::istream_iterator<float>(ifs)), std::istream_iterator<float>());
    ifs.close();
    return 0;
}
igorrr37 вне форума Ответить с цитированием
Старый 28.06.2011, 23:05   #4
Nedward
Пользователь
 
Регистрация: 26.06.2011
Сообщений: 85
По умолчанию

У меня получилось нечто вроде этого. Оно, чует мое сердце, сильно хромает в плане быстродействия и не имеет защиты "от дурака", но вроде работает . Будет время - исправлю.
Код:
#include <iostream>
#include <fstream>
#include <ctime>

using namespace std;

int main()
{
	srand((unsigned int )time(0));
//Часть 0: Создаем файл.
	cout << "Hello, world!" << endl;
	//1) Получаем количество чисел, которые мы должны записать в файл
	unsigned int num_numbers;
	cout << "Enter num numbers:" << endl; //Чёрт, нужно подучить английский :(
	cin >> num_numbers;
	
	//2) Открываем файл для записи (предыдущие данные в нем благополучно стираются)
	std::ofstream file_out("d:\\abc\\a.txt");
	
	//3) Записываем случайные действительные числа от... например -10 до 10:
	for(unsigned int i=0;i<num_numbers;i++)
		file_out << ((rand()%21)-10) << " ";

	//4) Закрываем файл
	file_out.close();

//Часть А (Наибольшее значение):
	double max = -1000;
//Часть Б (наименьшее с четным номером):
	double min_chetnoe = 1000; //блин, точно нужно учить английский :(
//Часть В (наибольшее с нечетным):
	double max_nechetnoe = -1000;

	//Первое - открываем файл:
	std::ifstream file_input("d:\\abc\\a.txt");
	//Далее - считываем все элементы:
	double tmp;
	bool chetnoe=false; //начинаем с нечетного, первого элемента
	cout << "Reading numbers:" << endl;
	while (true)
	{
		file_input >> tmp;
		if (file_input.eof()) break;//(изящнее решение, к сожалению, в час ночи в голову не лезет)
		cout << tmp << " ";
		if (tmp>max) max = tmp; //Часть А
		
		if (chetnoe)
		{
			//Часть Б:
			if (tmp<min_chetnoe)min_chetnoe=tmp;
		}
		else
		{
			//Часть В:
			if (tmp>max_nechetnoe)max_nechetnoe=tmp;
		}
		chetnoe=!chetnoe; //Если текущее число было четным, то следующее - уж точно нечетное! Ну и наоборот...
	}
	cout << endl;
	file_input.close();

	cout << "Maximum: " << max << endl << "Max nechetnoe: " << max_nechetnoe << endl << "Min chetnoe: " << min_chetnoe << endl;
	return 0;
}
Всегда пишите код так, будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете. (c) Martin Golding
Nedward вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
переведите с с++ на язык делфи cdznsdg Помощь студентам 2 17.03.2011 08:17
переведите на С++ из паскаля Юляшко Общие вопросы C/C++ 2 09.05.2010 20:32
переведите с паскаля на си++ Bonne Помощь студентам 2 22.04.2010 00:21
Переведите пожалуйста из Pascal в C++ KamBall Паскаль, Turbo Pascal, PascalABC.NET 0 25.05.2009 14:57
Переведите на язык Delphi neomaximus Помощь студентам 1 26.11.2008 09:24