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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 15.05.2014, 20:41   #1
sisaw
Пользователь
 
Регистрация: 15.12.2013
Сообщений: 24
Печаль Где моя ошибка не могу найти

Создайте файл f, компоненты которого являются целыми числами. Напишите программу подсчета нечетных и четных компонентов файла f, и определите, каких из них больше (почему то ввод с клавы но не из файла)


program xxx;

const n = 5;
var
f : file of integer;
x,y,i : integer;
z : array [1..n] of integer;
begin
assign(f,'C:\Users\я\Desktop\файл11 1.txt');
rewrite(f);
x := 0;
y := 0;
for i := 1 to n do
begin
write ('z[',i,']=');
readln(z[i]);
if z[i] mod 2 = 0 then
inc(x)
else
inc(y);
end;
if x > y then
writeln('Больше четных')
else if y > x then
writeln('Больше нечетных')
else
writeln('Поровну');
reset(f);
i := 1;
while not eof(f) do
begin
read(f,z[i]);
write(z[i],' ');
inc(i);
end;
readln;
end.
sisaw вне форума
Старый 15.05.2014, 20:58   #2
ZX Spectrum-128
Участник клуба
 
Регистрация: 05.11.2013
Сообщений: 1,601
По умолчанию

Программа отработает неверно, если элемент массива=0
Код:
const
  n = 5;
var
  f : file of integer;
  x,y,i : integer;
  z : array [1..n] of integer;
begin
  assign(f,'file.dat');
  rewrite(f);
  for i := 1 to n do
    begin
      write ('z[',i,']=');
      readln(z[i]);
      write(f,z[i]);
    end;
  close(f);

  reset(f);
  i := 1;
  x := 0;
  y := 0;
  while not eof(f) do
    begin
      read(f,z[i]);
      if z[i] mod 2 = 0 then
        inc(x)
      else
        inc(y);
      inc(i);
    end;
  if x > y then
    writeln('chetnyh >')
  else
    if y > x then
      writeln('nechetnyh >')
    else
      writeln('=');
  readln;
end.
ZX Spectrum-128 вне форума
Старый 15.05.2014, 21:04   #3
sisaw
Пользователь
 
Регистрация: 15.12.2013
Сообщений: 24
По умолчанию

Цитата:
Сообщение от ZX Spectrum-128 Посмотреть сообщение
Программа отработает неверно, если элемент массива=0
Код:
const
  n = 5;
var
  f : file of integer;
  x,y,i : integer;
  z : array [1..n] of integer;
begin
  assign(f,'file.dat');
  rewrite(f);
  for i := 1 to n do
    begin
      write ('z[',i,']=');
      readln(z[i]);
      write(f,z[i]);
    end;
  close(f);

  reset(f);
  i := 1;
  x := 0;
  y := 0;
  while not eof(f) do
    begin
      read(f,z[i]);
      if z[i] mod 2 = 0 then
        inc(x)
      else
        inc(y);
      inc(i);
    end;
  if x > y then
    writeln('chetnyh >')
  else
    if y > x then
      writeln('nechetnyh >')
    else
      writeln('=');
  readln;
end.
так он все равно просит ввести с клавы а не берет из файла
sisaw вне форума
Старый 15.05.2014, 21:07   #4
ZX Spectrum-128
Участник клуба
 
Регистрация: 05.11.2013
Сообщений: 1,601
По умолчанию

Вы вводите элементы массива с клавиатуры. Если не нравится, сделайте рандомное заполнение.
ZX Spectrum-128 вне форума
Старый 15.05.2014, 21:14   #5
sisaw
Пользователь
 
Регистрация: 15.12.2013
Сообщений: 24
По умолчанию

Цитата:
Сообщение от ZX Spectrum-128 Посмотреть сообщение
Вы вводите элементы массива с клавиатуры. Если не нравится, сделайте рандомное заполнение.
рондомное мне сказали нельзя использовать им надо по другому.
sisaw вне форума
Старый 15.05.2014, 21:18   #6
sisaw
Пользователь
 
Регистрация: 15.12.2013
Сообщений: 24
По умолчанию

Цитата:
Сообщение от ZX Spectrum-128 Посмотреть сообщение
Вы вводите элементы массива с клавиатуры. Если не нравится, сделайте рандомное заполнение.



program xxx;

const n = 5;

var
f : file of integer;
x,y,i : integer;
z : array [1..n] of integer;
path : string;


begin

assign(f,'C:\Users\яяя\Desktop\ффф1 11.txt');
rewrite(f);
randomize;
x := 0;
y := 0;
for i := 1 to n do
begin
z[i] :=random(10)+1;
write(f,z[i]);
if z[i] mod 2 = 0 then
inc(x)
else
inc(y);
end;
if x > y then
writeln('Больше четных')
else if y > x then
writeln('Больше нечетных')
else
writeln('Поровну');
reset(f);
i := 1;
while not eof(f) do
begin
read(f,z[i]);
write(z[i],' ');
inc(i);
end;
readln;
end.


у меня вот как было, но мне сказали сделать без рондома, а выводит он у меня вот так
Больше нечетных
1 1 9 6 10
мне так же надо
sisaw вне форума
Старый 15.05.2014, 21:28   #7
ZX Spectrum-128
Участник клуба
 
Регистрация: 05.11.2013
Сообщений: 1,601
По умолчанию

Тогда разделите программу на две. Одна на создание, вторая на подсчет.
Еще вывести массив нужно? Так добавьте вывод массива.
ZX Spectrum-128 вне форума
Старый 15.05.2014, 21:34   #8
sisaw
Пользователь
 
Регистрация: 15.12.2013
Сообщений: 24
По умолчанию

Цитата:
Сообщение от ZX Spectrum-128 Посмотреть сообщение
Тогда разделите программу на две. Одна на создание, вторая на подсчет.
Еще вывести массив нужно? Так добавьте вывод массива.
все теперь дошло спасибо
sisaw вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Моя сортировка. внутри ошибка, найти не могу pinkiller Общие вопросы C/C++ 1 10.01.2012 18:41
не могу понять где ошибка Neon-z PHP 13 22.01.2011 16:15
не могу ни где найти прогу с++, помогите... HIGER INTELLECT Общие вопросы C/C++ 2 18.09.2009 18:28