• Уважаемый посетитель!!!
    Если Вы уже являетесь зарегистрированным участником проекта "миХей.ру - дискусcионный клуб",
    пожалуйста, восстановите свой пароль самостоятельно, либо свяжитесь с администратором через Телеграм.

Pascal. Решение задач

  • Автор темы Автор темы Jaratar
  • Дата начала Дата начала
Ting
Незачто, обращайтесь :) рада, что после такого перерыва смогла что - то написать. Было бы интересно ,если бы вы сказали, что не работало?
 
Program Armstrong;
Uses crt;
Var i, a, c1, c2, c3, c4, sumc:integer;
Begin
ClrScr;
for i:=10 to 9999 do
begin
a:=i;

if (a < 100) then
begin
c2 := a mod 10;
a := a div 10;
c1 := a;
sumc = c1*c1 + c2*c2;
if (sumc = i) then WriteLn(i, " -число Армстронга ");
end;

if ( a < 1000) then
begin
c3 := a mod 10;
a := a div 10;
c2 := a mod 10;
a := a div 10;
c1 := a;

sumc = c1*c1*c1 + c2*c2*c2 + c3*c3*c3;
if (sumc = i) then WriteLn(i, " -число Армстронга ");
end;
if ( a < 10000) then
begin
c4 := a mod 10;
a := a div 10;
c3 := a mod 10;
a := a div 10;
c2 := a mod 10;
a := a div 10;
c1 := a;

sumc = c1*c1*c1*c1 + c2*c2*c2*c2 + c3*c3*c3*c3 + c4*c4*c4*c4;
if (sumc = i) then WriteLn(i, " -число Армстронга ");
end;
end;
ReadKey;
End.

ОПИШИТЕ ПО ШАГОВО ЗАДАЧУ ПЛИЗ
 
Ting
Программа работает? Правильно работает? Или ты пытаешься найти ошибку?
Если работает, тогда в чем проблема? Не можешь посмотреть, что означают отдельные операторы Паскаля? Здесь же все прозрачно. Скажи, что именно тебе не понятно.
 
Всё работает правильно... Просто нужны коментарии к прграмме..
 
Ting
Коротко: в программе цикл по всем двух - трех - четырех - значным числам. Для каждого числа, в зависимости от того, сколько в нем цифр (определяется условиями if) выделяются все эти цифры (при помощи div и mod), затем... что там... складываем все цифры числа в соответствующей степени. Сравниваем с самим числом. Все.

Если у тебя есть КОНКРЕТНЫЙ вопрос, т.е. ты пробовал разобраться в коде, но не понял, как работает какой - то конкретный кусочек, это другой вопрос.

К сожалению, с программированием могут помочь, только если твой вопрос покажется интересным. Разжевывание же по полочкам этой программы скучно, т.к. прога элементарная. Не жди, что кто - то решит твои проблемы ,особенно если тебе лень даже смотреть на код, не то, что писать его.

Если вдруг ты не знаешь, что означает какой - либо из операторов Паскаля, написанных мной в этой программе, то это не ко мне, это сюда.

На будущее:
учимся спрашивать

учимся гуглить

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

Здравствуйте! Помогите СРОЧНО решить, пожалуйста, задачи:

1)В модуль включить подпрограмму определения минимального элемента из последовательности N чисел. В основную программу ввести значения компонент векторов b(b1,b2,,bm) и c(c1,c2,,cl) и вычислить min(bi)+min(cj), где i=1,,m; j=1,,l.

2)реализовать в виде модуля набор подпрограмм для выполнения следующих операций над векторами (в пространстве):
-сложение;
-вычитание;
-скалярное произведение;
-умножение вектора на число;
-нахождение длины вектора.
Вектор представить следующим типом:
type
vector=record
x,y,z:real; {x,y,z - координаты вектора}
end;
Используя этот модуль, решить задачи:
1. Дан массив А-массив векторов. Отсортировать его в порядке возрастания длин векторов;
2. С помощью датчика случайных чисел сгенерировать 12 целых чисел. Тройка чисел (из этих 12) задаёт точку в пространстве. Вывести координаты тройки точек, образующих треугольник с наименьшей площадью.

3)Дан текстовый файл, содержащий действительные числа. Переписать содержимое файла в массив, разместив его в динамически распределяемой памяти. Разработать программу, формирующую из этого массива, целая часть которых не превышает единицы, а второй все остальные.

4) Найти наибольший элемент матрицы и подсчитать количество столбцов, содержащих max элемент.

Заранее спасибо.
 
помогите пожалуйста, вот задача: Написать программу, которая по заданному номеру месяца выводит на экран название следующего за ним месяца.
 
Uckorka
Хм.. вам совсем по - простому или с наворотами?

Ну.... никак, так никак. Еще проще :D
 
Uckorka

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

2. Данного типа ошибки очень легко обнаруживает компилятор, но у меня он не установлен, т.к. не засоряю комп ненужными программами (по крайней мере нерабочий, с которого и сижу в инете). Так что копируйте текст в компилятор и запускайте. Должно работать. Если нет - ну.. может, где - то запятую не поставила или точку с запятой?

3. А вообще все должно работать, написала самым элементарным образом, коим только придумала. На здоровье :)

Program Year;
Uses crt;
Var m: integer;
Begin
ClrScr;
WriteLn("Введите номер месяца: ");
ReadLn (m);
case m of
1: WriteLn ('Следующий месяц Февраль');
2: WriteLn ('Следующий месяц Март');
3: WriteLn ('Следующий месяц Апрель');
4: WriteLn ('Следующий месяц Май');
5: WriteLn ('Следующий месяц Июнь');
6: WriteLn ('Следующий месяц Июль');
7: WriteLn ('Следующий месяц Август');
8: WriteLn ('Следующий месяц Сентябрь');
9: WriteLn ('Следующий месяц Октябрь');
10: WriteLn ('Следующий месяц Ноябрь');
11: WriteLn ('Следующий месяц Декабрь');
12: WriteLn ('Следующий месяц Январь следующего года!!!');
else WriteLn ('Номера месяцев находятся в диапазоне от 1 до 12!');
end;

ReadKey;
End.
 
огроммное спасибо! оказывается это совсем не сложно, теперь я знаю где мне помогут с задачами, еще раз спасибо :bouquet:
 
Помогите в решение. Основной капитал - 3млн. денежных единиц.Средняя скорость оборота его-6лет.Оборотный капитал 500 тыс. денежных единиц,он оборачивается 13 раз в год. Определить время оборота капитала в целом
 
Uckorka написал(а):
теперь я знаю где мне помогут с задачами
Осторожно! Я не слишком люблю потакать чужой лени. Так что в следующий раз потребую от вас ваших собственных мыслей и кусочков кода.
 
помогите написать программу, которая по заданному натуральному значению и действительному вычисляет результат выражения:
H=a*(a+1)*(a+2)*...*(a+n-1) . Я эту тему что то не понял, а препод просит уже сейчас сдать.
 
Nat

Эта тема - одна из самых первых в программировании на Паскале. Если не поймете ее - могу дать 100%, что и следующие точно. А я не очень хочу весь год писать за вас программы. Как, в общем - то и за кого - либо. Можете попробовать разобраться в том, что я накропала для госпожи искорки - может, вам это поможет. Если нет - добро пожаловать сюда или сюда,

а лучше откройте учебник и учите
Если придумаете хоть что - нибудь, можете написать, как бы вы собирались решать поставленную задачу, я поправлю. Однако решать ваши проблемы никто кроме вас не будет
 
помогите пожалуйста, вот задача: Написать программу, которая "сжимает" заданную последовательность путем удаления из нее нулевых элементов. Запрещено использовать дополнительный массив.
var a:array [1..100] of integer;
n,i,k: integer;
begin randomize;
readln(n);
for i:=1 to n do begin
a:= random(6)-2;
write(a,' ');
end;
writeln;
for i:=1 to n do
begin
if a=0 then
writeln(a[i+1])
end;
a[i+1]:=a ;
readln;
end.
вот до чего я додумалась, но не могу сделать так что бы не повторялось, помогиииите
 
Ну, если учесть, что вы, судя по всему, не проходили ни функции, ни рекурсию, можно тупо крутиться в цикле, пока в последовательности не исчезнут нули. Сделать это просто. В разделе var у тебя есть лишняя переменная k, т.к. я не нашла, где она используется. Поэтому использую в своем кусочке кода.

Код:
repeat
 k:=0;
 for int i:=1 to n do
  begin
    if a[i] = 0 then
    begin
    if i < n then
    a[i] := a[i+1];
    else
     n:=n-1;
    k:=1;
    end;
   end;
until (k=0);

Нужно заменить этим кусочком кода вот этот:
Uckorka написал(а):
for i:=1 to n do
begin
if a=0 then
writeln(a[i+1])
end;


И, пожалуйста, объясни, зачем тебе эта строчка?
Uckorka написал(а):

Я что - то не видела указания сохранить исходную последовательность..
Вместо этой строчки напиши цикл, в котором выводишь получившуюся последовательность на экран. Все.

Ну, опять же, компилятора у меня нету, так что в коде могут быть ошибки. Синтаксические. В сути вроде все правильно написано. Ага.. и ту часть проги, где ты генерируешь случайные числа, объявляешь из них массив и.т.д. я тоже не проверяла, там разбирайся сама или гугль в помощь, объявлять массивы в паскале вроде как несложно. :)
 
помогите пожалуйста решить)
Вещественный массив содержит несколько отрицательных элементов, разделяющих его на отдельные подмассивы. Первый и последний элементы массива неотрицательны. Элементы первого подмассива сгруппировать в порядке возрастания, второго - в порядке убывания, третьего - в порядке возрастания и т.д. Учесть частные случаи (в массиве нет отрицательных элементов; подмассив пустой или содержит только один элемент).
 
Назад
Сверху