Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Delphi, Kylix and Pascal


Ответ
 
Опции темы Опции просмотра
Старый 16.01.2012, 20:52   #1 (permalink)
Рысена
Новичок
 
Регистрация: 16.01.2012
Сообщений: 1
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
Question Написать программу...

ПРОШУ!!! ПОМОГИТЕ!!! В ЧЕТВЕРГ ЭКЗАМЕН!!! А ЭТО ДОПУСК!!!*** (циклы)
:t ehnari_ru_281:
А) Дан набор ненулевых чисел; признак его завершения число 0. Вывести сумму всех положительных четных чисел из данного набора. Если требуемые числ в наборе отсутствуют, то вывести 0.

Б) Написать программу, которая вычисляет наибольший общий делитель 2х целых чисел.

В) Дано целое число N и набор из N вещественных чисел. Вывести сумму и произведение чисел из данного набора.

*** (одномерный и двумерный массивы)

Г) Дан одномерный массив. Переставить в обратном порядке элементы массива, распространив между максимальными и минимальными элементами.

Д) Дана матрица размером 5х10. Вывести номер ее первой и последней строки, содержащей только положительные элементы. Если таких строк нет, то вывести 0.

***
Е) Даны два целых числа A и B (A<B). Вывести все целые числа, расположенные между данными числами (не включая сами эти числа) в порядке их убывания, а так же количество N этих чисел.


*** (Процедуры и функции)

Ж) Даны два числа. Поменять местами их значения.
Даны два целых числа. Поменять местами их значения.

З) Дано N целых чисел. Найти среди них число, у которого сумма цифр имеет максимальное значение.
Рысена вне форума   Ответить с цитированием

Старый 16.01.2012, 20:52
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Предлагаю вам прочесть эти темы, так как они по содержанию очень схожи с вашей

Написать программу. Delphi
Написать программу в Pascal ABC
Помогите написать программу
Помогите написать программу
Помогите написать программу на СИ
Написать программу на С++

Старый 17.01.2012, 12:23   #2 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от Рысена Посмотреть сообщение
ПРОШУ!!! ПОМОГИТЕ!!! В ЧЕТВЕРГ ЭКЗАМЕН!!! А ЭТО ДОПУСК!!!
Понятно. Ну что же - с пробуждением! Надеюсь, Вашему сладкому сну в течение целого семестра никто не мешал? Понимаю: всё было так прекрасно, а тут, откуда ни возьмись - сессия! Ну что же - не оставлять же Вас один на один с этим кровожадным чудовищем... Поможем, ладно. Только вот одно обстоятельство. Итак, Вы последовали твёрдо установившейся на нашем форуме традиции: никогда и при каких обстоятельствах не выдавать тайны языка программирования, на котором следует выполнить задание. А на наши отчаянные просьбы, увещевания, угрозы и т.п. не обращать ни малейшего внимания: не скажу, и всё тут! Ну что же, в таком случае я оставляю выбор за собой, и выбираю Free Pascal. А если у Вас Delphi или даже Pascal ABC, то это - Ваши проблемы.
Цитата:
Сообщение от Рысена Посмотреть сообщение
А) Дан набор ненулевых чисел; признак его завершения число 0. Вывести сумму всех положительных четных чисел из данного набора. Если требуемые числ в наборе отсутствуют, то вывести 0.
Код:
Var
 a:Integer;
 Sum:LongInt;
Begin
 Sum:=0;
 Repeat
  Write('Next element: ');
  Readln(a);
  If (a>0) and ((a mod 2)=0) then Inc(Sum,a);
 Until a=0;
 Writeln('Sum = ',Sum);
 Readln;
End.
Цитата:
Сообщение от Рысена Посмотреть сообщение
Б) Написать программу, которая вычисляет наибольший общий делитель 2х целых чисел.
Код:
Var
 a,b,d,NOD:Word;
Begin
 Write('a= ');
 Readln(a);
 Write('b= ');
 Readln(b);
 If a>b then NOD:=b+1 else NOD:=a+1;
 Repeat
  Dec(NOD);
 Until ((a mod NOD)=0) and ((b mod NOD)=0);
 Writeln('NOD= ',NOD);
 Readln
End.
Цитата:
Сообщение от Рысена Посмотреть сообщение
В) Дано целое число N и набор из N вещественных чисел. Вывести сумму и произведение чисел из данного набора.
Код:
Var
 N,i:Byte;
 A,P,S:Extended;
Begin
 Write('N= ');
 Readln(N);
 S:=0;
 P:=1;
 For i:=1 to N do
  begin
   Write('Element N',i:2,': ');
   Readln(A);
   S:=S+A;
   P:=P*A;
  end;
 Writeln('Sum = ',S:0:5);
 Writeln('Product = ',P:0:8);
 Readln;
End.
Цитата:
Сообщение от Рысена Посмотреть сообщение
Г) Дан одномерный массив. Переставить в обратном порядке элементы массива, распространив между максимальными и минимальными элементами.
Простите - ни бельмеса не понял. Как это "распространив"? В каком смысле?
Цитата:
Сообщение от Рысена Посмотреть сообщение
Д) Дана матрица размером 5х10. Вывести номер ее первой и последней строки, содержащей только положительные элементы. Если таких строк нет, то вывести 0.
Код:
Var
 M:Array[1..5,1..10] of Integer;
 i,j,first_i,last_i:Byte;
 b:boolean;
Begin
 Randomize;
 first_i:=0;
 last_i:=0;
 For i:=1 to 5 do
  begin
   For j:=1 to 10 do
    begin
     M[i,j]:=-10+Random(100);
     Write(M[i,j]:5);
    end;
   Writeln;
  end;
 Writeln;
 Writeln;
 For i:=1 to 5 do
  begin
   b:=true;
   j:=0;
   Repeat
    Inc(j);
    If M[i,j]<=0 then b:=false;
   Until Not(b) or (j=10);
   If b then
    begin
     if first_i=0 then first_i:=i
     else last_i:=i;
    end;
  end;
 Writeln('First line has number ',first_i);
 Writeln('Last line has number ',last_i);
 Readln;
End.
Цитата:
Сообщение от Рысена Посмотреть сообщение
Е) Даны два целых числа A и B (A<B). Вывести все целые числа, расположенные между данными числами (не включая сами эти числа) в порядке их убывания, а так же количество N этих чисел.
Код:
Var
 A,B,i:Integer;
Begin
 Write('A= ');
 Readln(A);
 Write('B= ');
 Readln(B);
 For i:=B-1 downto A+1 do write(i:8);
 Writeln;
 Writeln;
 Writeln('N = ',B-A-1);
 Readln;
End.
Цитата:
Сообщение от Рысена Посмотреть сообщение
Ж) Даны два числа. Поменять местами их значения. Даны два целых числа. Поменять местами их значения.
Код:
Var
 a,b:Integer;

Procedure Exchange(q,p:Integer; var q1:Integer; var p1:Integer);
begin
 q1:=p;
 p1:=q;
end;

Begin
 Write('a= ');
 Readln(a);
 Write('b= ');
 Readln(b);
 Writeln;
 Exchange(a,b,a,b);
 Writeln('a= ',a);
 Writeln('b= ',b);
 Readln
End.
Цитата:
Сообщение от Рысена Посмотреть сообщение
З) Дано N целых чисел. Найти среди них число, у которого сумма цифр имеет максимальное значение.
Код:
Var
 A:Array[1..100] of Word;
 N,Max_S,i,I_max:Byte;

Function Sum_of_figures(p:Word):Byte;
var
 d:Word;
 S,j:Byte;
begin
 d:=10000;
 S:=0;
 For j:=1 to 5 do
  begin
   S:=S+(p div d);
   p:=p mod d;
   d:=d div 10;
  end;
 Sum_of_figures:=S;
end;

Begin
 Randomize;
 Write('N= ');
 Readln(N);
 Writeln;
 Writeln('Initial array:');
 For i:=1 to N do
  begin
   A[i]:=Random(65535);
   Write(A[i]:8);
  end;
 Writeln;
 Writeln;
 Writeln('Sums of figures:');
 Max_S:=0;
 For i:=1 to N do
  begin
   Write(Sum_of_figures(A[i]):8);
   If Sum_of_figures(A[i])>Max_S then
    begin
     Max_S:=Sum_of_figures(A[i]);
     I_max:=i;
    end;
  end;
 Writeln;
 Writeln;
 Writeln('Maximal sum of figures (',Max_S,') has the element N',I_max,' equal to ',A[I_max]);
 Readln;
End.
Vladimir_S вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 17:46.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.