ПОМОЩЬ по: Информатике

Все про школу, институт, проблемы и достижения в учёбе.
Аватара пользователя
Fabulous-girl
Втянувшийся
Сообщения: 478
Зарегистрирован: Вс июн 14, 2009 7:43 pm
Откуда: Ульяновск
Контактная информация:

Непрочитанное сообщение Fabulous-girl »

Linux forever!
я разобралась уже :)
у меня еще проблемка
при вводе чисел вводится только одно и ввод прекращается. Задача найти максимальное и минимальное число

Код: Выделить всё

program _3_9;
var
  chislo,min,max,i,sum:integer;
begin
i:=0;
  min:=1;
  max:=1;
  sum:=0;
    Writeln('vvedite posled chisel');
    readln(chislo);
  while chislo<>0 do
i:=i+1;
    if chislo>max
    then
      max:=chislo;
    if (chislo<min)and(chislo<>0)
    then
      min:=chislo;
    writeln('min: ',min);
  writeln('max: ',max);
 readln;
 end.
Чуствую я просто так проучусь еще 3 года, если не отчислят раньше :(

Аватара пользователя
Linux forever!
Втянувшийся
Сообщения: 425
Зарегистрирован: Сб май 31, 2008 7:59 pm
Откуда: Харьков, Украина / Москва, РФ
Контактная информация:

Непрочитанное сообщение Linux forever! »

Fabulous-girl

Я так понял, что задача состоит в следующем: вводится последовательность чисел, заканчивающаяся нулём. Нужно вывести минимум и максимум этой последовательности, не учитывая завершающий нуль (признак конца последовательности).

Задача очень простая, а вводится у тебя одно число потому, что readln() стоит у тебя до цикла, а должно стоять в цикле (много раз же нужно числа вводить, пока не введётся нуль).

А ещё у тебя много лишних переменных и неправильные начальные значения переменных min и max.

Код: Выделить всё

program Linux_forever;
var number, min, max : integer;
begin
  writeln('Введите последовательность чисел, заканчивающуюся нулём.');
  read(number);
  if number <> 0 then
  begin
    min := number;
    max := number;
    repeat
      read(number);
      if number <> 0 and number < min then
        min := number;
      if number <> 0 and number > max then
        max := number;
    until number = 0;
    writeln('min = ', min);
    writeln('max = ', max);
  end
  else
    writeln('Последовательность пустая.');
  {Здесь можно много раз писать readln;, но вообще это глупость и писать такого не стоит. В Turbo Pascal и Free Pascal можно смотреть вывод программы, нажав Ctrl-F5, а в командной строке результаты и так сразу видны.}
end.
Изображение
Изображение Linux forever!

Аватара пользователя
Fabulous-girl
Втянувшийся
Сообщения: 478
Зарегистрирован: Вс июн 14, 2009 7:43 pm
Откуда: Ульяновск
Контактная информация:

Непрочитанное сообщение Fabulous-girl »

Linux forever!
ясно, спасибо огромное. у на преподаватель требует, чтобы мы писали readln в конце
с циклом с предусловием так ведь получается?

Код: Выделить всё

program Linux_forever; 
var number, min, max : integer;
begin
  writeln('vvieite chisla.');
  read(number);
  if number <> 0 then
  begin
    min := number;
    max := number;
    while number<>0 do  begin
      read(number);
      if (number<>0) and (number<min)
      then
        min := number;
      if (number <> 0) and (number > max) then
        max := number;
        end;

    writeln('min = ', min);
    writeln('max = ', max);
  end
  else
    writeln('posled pustaya.');

end.
Мда, какой из меня выйдет программист, если я даже простые задачки сделать не могу, у меня их куча :cry:

Аватара пользователя
Linux forever!
Втянувшийся
Сообщения: 425
Зарегистрирован: Сб май 31, 2008 7:59 pm
Откуда: Харьков, Украина / Москва, РФ
Контактная информация:

Непрочитанное сообщение Linux forever! »

Fabulous-girl

Да, цикл я перепутал, потому что не тестировал, а прямо на форуме программу писал, компилируя в уме. :)

Код: Выделить всё

program Linux_forever;
var number, min, max : integer;
begin
  writeln('Enter the numbers with zero at the end.');
  read(number);
  if number <> 0 then
  begin
    min := number;
    max := number;
    while number <> 0 do
    begin
      read(number);
      if (number <> 0) and (number < min) then
        min := number;
      if (number <> 0) and (number > max) then
        max := number;
    end;
    writeln('min = ', min);
    writeln('max = ', max);
  end
  else
    writeln('Sequence is empty.');
end.
Изображение
Изображение Linux forever!

Аватара пользователя
Fabulous-girl
Втянувшийся
Сообщения: 478
Зарегистрирован: Вс июн 14, 2009 7:43 pm
Откуда: Ульяновск
Контактная информация:

Непрочитанное сообщение Fabulous-girl »

program aaa;

Код: Выделить всё

var y,i,x,g,d,s,a,q,b:integer;
m:array [1..25] of integer;
begin 
randomize; 
for i:=1 to 25 do 
 begin 
  m[i]:=random(100); 
  write(m[i]:3); 
 end; 
 writeln; 
 for i:=1 to 24 do 
 begin 
 y:=0; 
m[x]:=a; 
 for q:=1 to m[x] do 
 y:=y+(a mod 10); 
 a:=a div 10; 
 for g:=i+1 to 25 do 
 begin 
 b:=0; 
m[s]:=b; 
 for d:=1 to m[s] do 
 y:=y+(b mod 10);
 b:=b div 10; 
 if m[x]>m[s] then begin 
 a:=m[x]; 
 m[q]:=m[s]; 
 m[s]:=a; 
  
  end; 
 end; 
 end; 
 writeln; 
 for i:=1 to 25 do 
   write(m[i]:3); 
   readln; 
   end.
Ух и бред я чай написала :oops:

Аватара пользователя
Fabulous-girl
Втянувшийся
Сообщения: 478
Зарегистрирован: Вс июн 14, 2009 7:43 pm
Откуда: Ульяновск
Контактная информация:

Непрочитанное сообщение Fabulous-girl »

KLUBn14ka
ой, я же вроде писала :lol:
Надо найти сумму цифр элементов массива и упорядочить их по возрастанию

Аватара пользователя
Linux forever!
Втянувшийся
Сообщения: 425
Зарегистрирован: Сб май 31, 2008 7:59 pm
Откуда: Харьков, Украина / Москва, РФ
Контактная информация:

Непрочитанное сообщение Linux forever! »

Fabulous-girl

У тебя неправильно будет работать, потому что во внутренних циклах делаются очень странные вещи (в переменную накапливается всё время последняя цифра числа из массива). Дело в том, что деление на 10 (div 10) нужно делать в том же цикле, где берётся остаток, чтобы перейти к следующей цифре. Для этого нужно использовать составной оператор (begin end;), иначе к циклу относится только один оператор после заголовка цикла.

Очень советую тебе понять и прислушаться к некоторым советам по написанию кода, которые помогут тебе допускать меньше ошибок, лучше понимать свой код и делать его понятным для остальных. Сейчас, мягко говоря, код непонятный.

1) Никогда не называй переменные буквами, аббревиатурами или шифрами. Имя переменной должно лучше документации отражать то, для чего предназначена эта переменная. Я надеюсь, что ты хоть немного учила английский язык. Если мало слов знаешь, смотри в словарь при необходимости. И называй переменные так: если это массив чисел, то назови его array_of_number, если в этой переменной будет храниться минимум, то назови её minimum, если сумма, то sum, если цифра, то digit, если индекс массива, то index. Неужели тебе самой понятны твои имена: y,i,x,g,d,s,a,q,b? Наверняка завтра не вспомнишь уже, что означает какая-то буква.

2) Делай в программе отступы. Программа состоит из блоков begin end; Внутри каждого блока все операторы должны быть сдвинуты вправо например на два пробела. Если внутри есть вложенный блок, то внутри него ещё на два пробела вправо. Посмотри на мой код в постах выше для примера. Тогда одним взглядом на код, видно, что где происходит. А у тебя по коду это не видно.

3) Чтобы не путаться, как ты сделала с циклами, всегда делай блоки begin end;, даже если внутри один оператор (то есть блок было делать необязательно). Тогда ты сама себе докажешь, что этот блок написан правильно, или хотя бы задумаешься, а правильно ли тебя поймёт компилятор.

4) Для ещё большего удобства чтения кода, очень советую ставить пробелы после запятой и пробелы с двух сторон от остальных бинарных операторов (операторов, у которых два операнда: слева один и справа другой: например =, >, < , :=, +, -, *, / и другие).

Попробуй, тебе должно понравиться. А через небольшое время, ты поймёшь, что тебе же самой так удобнее. И меньше ошибок будешь делать.

Жду исправленный код (читаемый и правильно работающий) на проверку. Выкладывай, обсудим. :)
Изображение
Изображение Linux forever!

Аватара пользователя
Fabulous-girl
Втянувшийся
Сообщения: 478
Зарегистрирован: Вс июн 14, 2009 7:43 pm
Откуда: Ульяновск
Контактная информация:

Непрочитанное сообщение Fabulous-girl »

блин, как сделать блок схемы по этим задачам? программы есть, а вот блок-схемы не знаю как делать
1) в массиве из 25 элементов ищет кол-во простых?
2) ищет максимальные и минимальные элемнты
3) меняет местами макимальный и минимальный элемент
4)меняет местами максим. элемент первой половины и мин. второй
5) ищет элемент с максимальным кол-ом делителей

Аватара пользователя
Fabulous-girl
Втянувшийся
Сообщения: 478
Зарегистрирован: Вс июн 14, 2009 7:43 pm
Откуда: Ульяновск
Контактная информация:

Непрочитанное сообщение Fabulous-girl »

У меня не выдает результат, при выполнени пишет: Abnormal program termination: overfull
#

Код: Выделить всё

include<stdio.h>
#include<math.h>
int main(void)
{
	unsigned n,i;
	float f1,f2,a,s1,s2;
 n=1;
 a=1;
 n=2;
 a=(1)/12;
 s1=(1)/2;
 s2=(7)/12;
 while (fabs(s2-s1)>=0,003)
 {
	 n=n+1;
	 f1=1;
	 i=1;
	 while(i<=n)
	 {
		 f1=f1*i;
		 i=i+1;
	 }
		f2=1;
		i=1;
		while(i<=2*n)
		{
		  f2=f2*i;
		  i=i+1;
		}
  a=(f1)/(f2);
  s1=s2;
  s2=s2+a;
 }
	printf("%f%f",s2,a);
}

Аватара пользователя
Marlen
Легенда форума
Сообщения: 11440
Зарегистрирован: Ср мар 10, 2010 7:18 pm
Контактная информация:

Непрочитанное сообщение Marlen »

у кого-нибудь есть базы данных по любой тематике с исходным кодом?)

Аватара пользователя
Marlen
Легенда форума
Сообщения: 11440
Зарегистрирован: Ср мар 10, 2010 7:18 pm
Контактная информация:

Непрочитанное сообщение Marlen »

KLUBn14ka
да.))))))можешь залить куда-нибудь и скинуть ссылку??

Аватара пользователя
Marlen
Легенда форума
Сообщения: 11440
Зарегистрирован: Ср мар 10, 2010 7:18 pm
Контактная информация:

Непрочитанное сообщение Marlen »

KLUBn14ka
наверное нужен :oops: короче как сделать exe? :oops: чтобы я могла на любом компе эту базу показать? :oops:

Аватара пользователя
Marlen
Легенда форума
Сообщения: 11440
Зарегистрирован: Ср мар 10, 2010 7:18 pm
Контактная информация:

Непрочитанное сообщение Marlen »

KLUBn14ka
вот можно мне тогда db и рассказать.как обращаться из командной строки ну или программу которая запустит это. вот)

просто мне нужно будет показать программу преподу.т.е. как она работает.со всем формированием отчета и т.д. и т.п.

Аватара пользователя
Повесть
Легенда форума
Сообщения: 2309
Зарегистрирован: Вс авг 05, 2007 10:50 pm
Откуда: оттуда,где сбываются сны ;)
Контактная информация:

Непрочитанное сообщение Повесть »

пожалуйста,помогите найти ответ на билет"интегрированные среды программирования"заранее спасибо. :oops:
Изображение

hggikkknn
Новичок
Сообщения: 6
Зарегистрирован: Вс июн 20, 2010 12:43 pm
Контактная информация:

Непрочитанное сообщение hggikkknn »

можете помочь с паскалем
задание такое
Вывести расписание занятий для заданой даты
расписание проведения занятий на 1 курсе характеризуется днём,неделей,временем проведения занятий (лекция,лаб.работа,семинар) вывести расписание занятий для заданой даты

Ответить

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 6 гостей