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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.01.2011, 16:28   #1
Aidar9119
Пользователь
 
Регистрация: 20.12.2010
Сообщений: 16
Восклицание из С++ в Паскаль АВС

нужно этот код из С++(есть 3 ошибки,их надо исправить) в Паскаль АВС перевести:
#include<iostream>
#include<cstdlib>
#include <time.h>
#include<fstream>
#include<cmath>

using namespace std;

int main(){
srand(time(0));
int i,k,n,j=0;
n = rand()%20;
int mass[n];
cout<<"massiv:\n";
for( i =0;i<n;i++){
mass[i]= rand()%100;
cout<<mass[i]<<" ";
}
cout<<"\n dannie zapisani v ==>fin.txt"<<endl;;
FILE *fp1 = fopen("fin.txt","w");
if(!fp1)
{
cout << "Nevozmozhno otkryt' fail"<< endl;
}
for( i =0;i<n;i++){
k=sqrt(mass[i]);
if(mass[i]==k*k&&k%2!=0){
j++;
}
}
for(i=0;i<n;i++){
fprintf ( fp1, "%d", mass[i]);
fprintf ( fp1, " ");
}
fprintf ( fp1, "\n");
fprintf(fp1,"Kol-vo kvadratov nechetnix chisel: ");
fprintf ( fp1,"%d", j);
fclose(fp1);
system("PAUSE>>null");
return 0;
}
вот само задание:Заполнить файл f натуральными числами, полученными с помощью генератора случайных чисел. Найти количество квадратов нечетных чисел среди компонентов
ЗАРАНЕЕ БолЬшоЕ СпАсИбО!!
Aidar9119 вне форума Ответить с цитированием
Старый 04.01.2011, 22:30   #2
unbanned
Форумчанин
 
Аватар для unbanned
 
Регистрация: 23.11.2010
Сообщений: 530
По умолчанию

не легче заново написать?
Код:
const
  n = 20; //это типо кол-во чисел которые в файл пишуться
  c = 100;//это рандом чисел (т.е. от 0 до 99)

var
  m: array[1..n] of integer;
  i, j, k, l: integer;
  f: text; //можно описать как файл интеджеров, но чет он у меня блокнотом не открылся, сделал текстовый
  s: string;

begin
  i := 1;
  j := 1;
  k := 0;
  l := 0;
  while j <= round(n / 2) do 
  begin
    m[j] := sqr(i);
    i := i + 2;
    j := j + 1;
  end;
  assign(f, 'output.txt');
  rewrite(f);
  for j := 1 to n do
  begin
    l := random(c);
    str(l, s);//если берешь не текстовый файл, а integer, то это лишнее(в т.ч. переменная s, просто сразу l в файл записываешь)
    writeln(f, s);
    for i := 1 to round(n / 2) do
      if m[i] = l then k := k + 1;
  end;
writeln(f,'количество квадратов нечетных чисел:',k);
  close(f);
end.
вродь работает... не переводил с С а написал заново, но идею взял оттуда

Последний раз редактировалось unbanned; 04.01.2011 в 23:20.
unbanned вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задачки. Паскаль АВС. Света=) Помощь студентам 5 30.12.2010 12:02
Итерационные алгоритмы. Паскаль авс. Света=) Помощь студентам 2 30.12.2010 11:30
Написать программу, преобразующую файл АВС.ТХТ в файл 123.ТХТ [Паскаль] Djoker Помощь студентам 1 12.12.2010 19:45
паскаль авс Саранск-сити Помощь студентам 1 08.06.2010 20:08
Паскаль АВС - найти самое большое из четырёх чисел Dante123 Помощь студентам 4 14.04.2009 17:42