С Новым годом! Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
0 / 0 / 0
Регистрация: 27.02.2010
Сообщений: 4

Вывести на экран каких чисел больше (положительных или отрицательных)

27.02.2010, 17:57. Показов 2063. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Дан файл из целых чисел. Вывести на экран каких чисел больше положительных или отрицательных в этом файле. (Искать количество положительных, отрицательных, потом сравнить.)
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
27.02.2010, 17:57
Ответы с готовыми решениями:

Каких чисел в массиве больше, положительных или отрицательных
Напишите программу, которая вводит с клавиатуры 20 реальных чисел, организовывает их хранение в одномерном массиве, а затем определяет ...

Каких чисел в последовательности больше: отрицательных или положительных?
Помогите пожалуйста не могу разобраться 1 Создать одномерный массив из 18 элементов. Каких чисел в последовательности больше:...

Определить, каких чисел в массиве больше, положительных или отрицательных
Составить блок-схему решения задачи и программу: Имеется одномерный массив A? состоящий из N произвольных чисел (A(N)), среди которых...

12
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,168
28.02.2010, 06:33
Costiel, Файл какой? Текстовый или типизированный?
0
0 / 0 / 0
Регистрация: 27.02.2010
Сообщений: 4
28.02.2010, 15:22  [ТС]
Текстовый
0
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,168
28.02.2010, 19:16
Создай текстовый файл в папке с программой, запиши в него через пробелы положительные и отрицательные числа.
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
uses crt;
var f:text;
    a,kp,ko:integer;
    name:string;
begin
clrscr;
write('Имя файла для чтения: ');
readln(name);
name:=name+'.txt';
assign(f,name);
{$I-} reset(f);  {$I+}
if IOResult <> 0 then
 begin
  writeLn('Не могу открыть файл ',name);
  writeLn('Работа программы завершена. Нажмите ENTER');
  readln;
  exit;
 end;
kp:=0;ko:=0;
while not eof(f) do
 begin
  read(f,a);
  if a>0 then kp:=kp+1;
  if a<0 then ko:=ko+1;
 end;
close(f);
writeln('Положительных=',kp,'  отрицательных=',ko);
if kp>ko then write('Положительных больше')
else if ko>kp then write('Отрицательных больше')
else write('Положительных и отрицательных поровну');
readln
end.
1
0 / 0 / 0
Регистрация: 27.02.2010
Сообщений: 4
28.02.2010, 22:32  [ТС]
А если файл типизированный то как будет выглядеть программа? (просто училку нашу фиг поймешь)
0
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,168
28.02.2010, 22:37
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
34
uses crt;
var f:file of integer;
    a,kp,ko:integer;
begin
clrscr;
assign(f,'fileF');
rewrite(f);
writeln('Введите в файл целые числа, окончание ввода 0:');
repeat
write('a=');
readln(a);
write(f,a);
until a=0;
clrscr;
writeln('Содержание исходного файла:');
kp:=0;
ko:=0;
reset(f);
while not eof(f) do
 begin
  read(f,a);
  write(a,' ');
  if a>0 then kp:=kp+1;
  if a<0 then ko:=ko+1;
 end;
writeln;
close(f);
reset(f);
writeln('Положительных=',kp,'  отрицательных=',ko);
if kp>ko then write('Положительных больше')
else if ko>kp then write('Отрицательных больше')
else write('Положительных и отрицательных поровну');
readln
end.
0
0 / 0 / 1
Регистрация: 03.11.2016
Сообщений: 4
26.11.2016, 17:12
ребят здесь надо типизированный файл создавать. иначе несоответсвие получиться: переменную вы забиваете текстовую а сравнить хотите типа Integer.
вот прога. она выводит в конце если больше положительных: дописывает плюс. если отрицательных: -1. если равное кол-во то пишет ноль.
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
program xx;
function itog(a,b:integer):Integer;
  begin
  if a=b then itog:=0
 
  else if a<b then itog:=1
 
  else itog:=- 1;
 
  end;
 
 
 
 
 var f:file of Integer;
 
 g,n,s,count,count2:Integer;
begin
  count:=0;
  count2:=0;
  n:=0;
Writeln('write number or ctrl-z');
Assign(f,'myText.txt');
 Rewrite(f);
while not Eof do
begin
  read(s);
  write(f,s);
end;
 Closе(f);
Reset(f);
while not Eof(f)do
begin
 read(f,s);
 if s<0 then Inc(count)
 else Inc(count2);
 end;
n:=itog(count,count2);
   Seek(f,FileSize(f));
 Write(f,n);
Сlose(f);
reset(f);
while not Eof(f) do
begin
read(f,s);
write(s,' ');
end;
Close(f);
 readln;
end.
0
Модератор
10378 / 5665 / 3399
Регистрация: 17.08.2012
Сообщений: 17,308
29.11.2016, 10:46
Цитата Сообщение от dildanil Посмотреть сообщение
здесь надо типизированный файл создавать
А Puporev, что, разве не создал типизированный файл? Да, и где в его программе хоть одна текстовая переменная? dildanil, Ваша программа делает ровно то же самое, что и программа от Puporev, за одним небольшим отличием: вместо нормального человеческого ответа выдаёт тайную цифирь. Файловый ввод с консоли, это, конечно, хорошо, но не всем известно про ctrl-z. Также Ваша программа не вполне соответствует заданию: в задании нет ни слова о том, что в конец файла требуется что-либо записывать.

И, вообще-то, незачем закрывать открытый файл, чтобы тут же его заново открыть. Строки 30 и 41 (а у Puporev строка 27) лишние.
0
0 / 0 / 1
Регистрация: 03.11.2016
Сообщений: 4
29.11.2016, 19:21
Цитата Сообщение от Cyborg Drone Посмотреть сообщение
Строки 30 и 41 (а у Puporev строка 27) лишние.
да что вы говорите?. по вашей логике тогда надо открыть файл и для и для записи одновременно. а это сделать нельзя. ошибка будет в любом случае!. нужно сначала либо открыть для записи и записать. одновременно это не сделать
0
Модератор
Эксперт Pascal/DelphiЭксперт NIX
 Аватар для bormant
7816 / 4635 / 2837
Регистрация: 22.11.2013
Сообщений: 13,158
Записей в блоге: 1
29.11.2016, 19:56
Цитата Сообщение от dildanil Посмотреть сообщение
да что вы говорите?. по вашей логике тогда надо открыть файл и для и для записи одновременно. а это сделать нельзя. ошибка будет в любом случае!
Сказано было не то, что вы прочитали, а ровно вот это:
Цитата Сообщение от Cyborg Drone Посмотреть сообщение
незачем закрывать открытый файл, чтобы тут же его заново открыть. Строки 30 и 41 ... лишние.
Pascal
1
2
3
4
5
6
7
8
9
10
  Assign(f,'myText.txt');
  Rewrite(f);
  ...
  Close(f); { не нужно }
  Reset(f); { можно сразу, без Close(f) }
  ...
  Close(f); { не нужно }
  Reset(f); { можно сразу, без Close(f) }
  ...
  Close(f); { тут нужно }
0
Модератор
10378 / 5665 / 3399
Регистрация: 17.08.2012
Сообщений: 17,308
30.11.2016, 04:09
Цитата Сообщение от dildanil Посмотреть сообщение
по вашей логике
Не по моей.
Цитата Сообщение от dildanil Посмотреть сообщение
одновременно это не сделать
Распространённое заблуждение. Вы пробовали? А что я спрашиваю, очевидно, что не пробовали, конечно. dildanil, если типизированный файл открыт, причём всё равно для чего, для записи или для чтения, в него можно писать в любое его место или в конец файла, и из него можно читать из любого его места уже записанное. Фактически, процедуры reset или rewrite открывают типизированный файл для чтения и записи и устанавливают указатель в нулевую позицию файла. Единственное отличие - rewrite делает длину файла нулевой. Иными словами, rewrite - это комбинация из reset и truncate. Всё это справедливо для любых файлов с произвольным доступом. С текстовым файлом, который является файлом с последовательным доступом, столь вольно поступать нельзя. В текстовый файл можно последовательно писать только в конец файла, а читать его можно только последовательно с начала файла. Но, даже в случае с текстовым файлом, не всё так плохо. Например, можно открыть текстовый файл для записи процедурой rewrite, что-то в него записать, затем процедурой reset установить указатель в начало файла, прочитать его, хоть весь, хоть частично, затем процедурой append установить позицию на конец файла и продолжить в него записывать. И закрывать при этом файл совершенно не требуется. Файл, по большому счёту, можно вовсе не закрывать, при выходе из программы файл и без close закроется. Close обязательно только в том случае, если в файл что-то писалось. И то не обязательно, без close просто будет потерян фрагмент файла, находящийся в файловом буфере.
0
Модератор
Эксперт Pascal/DelphiЭксперт NIX
 Аватар для bormant
7816 / 4635 / 2837
Регистрация: 22.11.2013
Сообщений: 13,158
Записей в блоге: 1
30.11.2016, 11:23
Цитата Сообщение от Cyborg Drone Посмотреть сообщение
Файл, по большому счёту, можно вовсе не закрывать, при выходе из программы файл и без close закроется.
Про сброс буфера -- вызова Flush(f) достаточно.
Тут нужно сделать оговорку, что "можно не закрывать, если его закроет по завершении приложения операционная система". Уже даже MS-DOS по завершении процесса закрывала все открытые этим процессом файлы.
См. 13.3.7.2 http://www.oopweb.com/Assembly... H13-5.html

Но в целом, плохому учите
1
Модератор
10378 / 5665 / 3399
Регистрация: 17.08.2012
Сообщений: 17,308
01.12.2016, 08:33
Мало того, что плохому учу, ещё и недоучиваю... Забыл написать, что, в отличие от rewrite, reset генерирует ошибку, если файл не существует...

Насчёт применения вместо close бедной и несчастной операционной системы, закрывающей временные файлы после грязно написанной моими последователями программы, полностью согласен. Сам-то я цинично пишу в конце программы все нужные close, а здесь чего-то решил блеснуть нехорошими тайными знаниями... Лучше бы скопипастил откуда-нибудь нужные подробные описания.

bormant, за дополнение - спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
01.12.2016, 08:33
Помогаю со студенческими работами здесь

Определить, каких чисел в массиве больше: положительных или отрицательных
помогите написать программу,которая вводит с клавиатуры 20 реальных чисел,организовывает их хранение в одномерном массиве,а затем...

Определить, каких чисел в массиве больше: положительных или отрицательных
Напишите программу, которая вводит с клавиатуры 20 реальных чисел, организовывает их хранение в одномерном массиве, а затем определяет...

Упорядочить массив по убыванию и определить каких чисел в нем больше, положительных или отрицательных
Помогите пожалуйста решить задачу: Дан одномерный массив целых чисел размерностью до 20 элементов. Необходимо упорядочить элементы...

В массиве каких больше элементов положительных или отрицательных?
В массиве каких больше элементов положительных или отрицательных?

Определить каких среди чисел больше: положительных или отрицательных
Как данную задачу можно решить в паскале АВС при помощи циклов? Последовательно вводятся N целых чисел. Определить каких среди них...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru