Составление программ на Delphi и на С

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

Рубрика Программирование, компьютеры и кибернетика
Вид контрольная работа
Язык русский
Дата добавления 23.07.2012
Размер файла 17,6 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

1. Дана квадратная матрица порядка п. Получить матрицу A2

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

Программа на Delphi

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, Grids, StdCtrls;

type

TForm1 = class(TForm)

Edit1: TEdit;

Label1: TLabel;

StringGrid1: TStringGrid; // исходная матрица

Button1: TButton;

StringGrid2: TStringGrid; // результативная матрица

Button2: TButton;

procedure Button1Click (Sender: TObject);

procedure Button2Click (Sender: TObject);

private

{Private declarations}

public

{Public declarations}

end;

var

Form1: TForm1;

cnt: integer;

implementation

{$R *.dfm}

procedure TForm1. Button1Click (Sender: TObject);

begin

cnt:= StrToInt (Edit1. Text)+1;

StringGrid1. RowCount:= cnt;

StringGrid1. ColCount:= cnt;

StringGrid1. Options:= StringGrid1. Options + [goEditing];

end;

procedure TForm1. Button2Click (Sender: TObject);

var

i, j, k: integer; // Счётчики циклов

a, b, d: integer;

begin

 // инициализация результативной матрицы

StringGrid2. ColCount:= cnt;

StringGrid2. RowCount:= cnt;

for i:=1 to cnt-1 do

for j:=1 to cnt-1 do

begin

a:=0; b:=0; d:=0;

for k:= 1 to cnt-1 do

begin

 //a:=0; b:=0;

a:= strtoint (stringGrid1. Cells [i, k]);

b:= strtoint (stringGrid1. Cells [k, j]);

d:= d + a * b;

end;

StringGrid2. Cells [i, j]:= inttostr(d); // заполняем результативную матрицу

end;

StringGrid2. Options:= StringGrid2. Options + [goEditing];

end;

end.

Программа на С

#include <stdio.h>

#include <stdlib.h>

#include <time.h>

# define n 4

int main()

{

srand (time(NULL));

int i, j, k, a[n] [n], b[n] [n], c[n] [n];

printf («Random matrix A\n»);

for (i=0; i<n; i++)

{

for (j=0; j<n; j++)

{

a[i] [j]=rand()%10;

printf («%3d», a[i] [j]);

}

printf («\n»);

}

for (i=0; i<n; i++)

{

for (j=0; j<n; j++)

{

c[i] [j]=0;

for (k=0; k<n; k++)

c[i] [j]+=(a[i] [k]*a[k] [j]);

}

}

printf («\nKvadratnaya matrica*\n»);

for (i=0; i<n; i++)

{

for (j=0; j<n; j++)

{

printf («%5d», c[i] [j]);

}

printf («\n»);

}

getchar();

return 0;

}

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

Программа на Delphi

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Classes, Controls, Forms, StdCtrls, dialogs;

type

T_Form = class(TForm)

Button1: TButton;

GroupBox1: TGroupBox;

L_1: TLabel;

Edit1: TEdit;

Label1: TLabel;

procedure FormCreate (Sender: TObject);

procedure Button1Click (Sender: TObject);

private

public

end;

var

_Form: T_Form;

implementation

{$R *.dfm}

procedure T_Form. FormCreate (Sender: TObject);

begin

end;

function PrepareSlovo (s:string):string;

var i:integer; _b,_bb:boolean;

begin

result:='';

_bb:=false; _b:=false;

for i:=1 to length(s) do begin

if (_bb) and(_b) then

result:=result+'.'

else begin

if not (s[i] in ['a'..'z']) then begin

if _b then _bb:=true;

end;

if (s[i] in ['a'..'z']) then _b:=true;

if not(_bb) then result:=result+s[i] else result:=result+'.';

end;

end;

end;

procedure T_Form. Button1Click (Sender: TObject);

begin

label1. Caption:=PrepareSlovo (edit1. Text);

end;

end.

Программа на С

#include <stdio.h>

int main() {

char c, b = 0;

while ((c = getchar())!= '\n') {

if (c >= 'a' && c <= 'z') {

if (b < 2)

putchar(c);

if (! b)

b = 1;

} else if (! b)

putchar(c);

else {

if (b == 1)

b = 2;

putchar ('.');

}

}

}

3. Даны натуральные числа а, b, с, которые обозначают число, месяц и год:

а) Проверить корректность этой даты (например, 30 февраля 1900 года - некорректная дата).

б) Найти номер этого дня с начала - года.

в) Определить, сколько полных дней осталось до конца года.

При решении задачи принять во внимание, что в современном (григорианском) календаре каждый год, номер которого делится на 4, является високосным, за исключением тех номеров, которые делятся на 100 и не делятся на 400.

Программа на Delphi

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls;

type

TForm1 = class(TForm)

Edit1: TEdit;

Edit2: TEdit;

Button1: TButton;

Edit3: TEdit;

Edit4: TEdit;

Edit5: TEdit;

Edit6: TEdit;

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

Label5: TLabel;

procedure Button1Click (Sender: TObject);

private

{Private declarations}

public

{Public declarations}

end;

var

Form1: TForm1;

chislo, mes, dneivgodu, n, x, ost:integer;

proverka, b:real; dneivmes1, dneivmes2, dneivmes3, dneivmes4, dneivmes5, dneivmes6, dneivmes7, dneivmes8, dneivmes9, dneivmes10, dneivmes11, dneivmes12:integer;

VisGod:boolean;

god:1000..3000;

implementation

{$R *.dfm}

procedure TForm1. Button1Click (Sender: TObject);

begin

chislo:=strtoint (Edit1. Text);

mes:=strtoint (Edit2. Text);

god:=strtoint (Edit3. Text);

if god mod 4 = 0 then begin

if god mod 100 <> 0 then begin

if god mod 400 = 0 then

begin

dneivgodu:=366;

end

else begin

dneivgodu:=365;

end;

end;

end;

case mes of

1:n:=chislo; //январь

2:n:=31+chislo; //февраль

end;

if dneivgodu = 365 then

case mes of

3:n:=60+chislo; //март и т.д.

4:n:=91+chislo;

5:n:=121+chislo;

6:n:=152+chislo;

7:n:=182+chislo;

8:n:=213+chislo;

9:n:=244+chislo;

10:n:=274+chislo;

11:n:=305+chislo;

12:n:=335+chislo;

end;

Edit5. Text:=inttostr(n);

if dneivgodu <> 365 then // високосный

case mes of

3:n:=59+chislo;

4:n:=90+chislo;

5:n:=120+chislo;

6:n:=151+chislo;

7:n:=181+chislo;

8:n:=212+chislo;

9:n:=243+chislo;

10:n:=273+chislo;

11:n:=304+chislo;

12:n:=334+chislo;

end;

Edit5. Text:=inttostr(n);

case mes of

1:n:=chislo; //январь

2:n:=31+chislo; //февраль

end;

if dneivgodu = 365 then

case mes of

3:n:=60+chislo; //март и т.д.

4:n:=91+chislo;

5:n:=121+chislo;

6:n:=152+chislo;

7:n:=182+chislo;

8:n:=213+chislo;

9:n:=244+chislo;

10:n:=274+chislo;

11:n:=305+chislo;

12:n:=335+chislo;

end;

ost:=365-n;

Edit6.text:=inttostr(ost);

if dneivgodu <> 365 then // високосный

case mes of

3:n:=59+chislo;

4:n:=90+chislo;

5:n:=120+chislo;

6:n:=151+chislo;

7:n:=181+chislo;

8:n:=212+chislo;

9:n:=243+chislo;

10:n:=273+chislo;

11:n:=304+chislo;

12:n:=334+chislo;

end;

if n = 366 then

begin

ost:=0;

end;

Edit6.text:=inttostr(ost);

 //proverka na korrektnost;

if mes = 1 then

begin

if chislo > 31 then

begin

Edit5. Text:='';

Edit6. Text:='';

showmessage ('Не корректная дата!!');

end;

end;

if mes = 2 then begin

if chislo > 29 then begin

Edit5. Text:='';

Edit6. Text:='';

showmessage ('Не корректная дата!!');

end;

end;

if mes = 3 then begin

if chislo > 31 then begin

Edit5. Text:='';

Edit6. Text:='';

showmessage ('Не корректная дата!!'); end;

end;

if mes = 4 then begin

if chislo > 30 then begin

Edit5. Text:='';

Edit6. Text:='';

showmessage ('Не корректная дата!!');

end;

end;

if mes = 5 then begin

if chislo > 31 then begin

Edit5. Text:='';

Edit6. Text:='';

showmessage ('Не корректная дата!!');

end;

end;

if mes = 6 then begin

if chislo > 30 then begin

Edit5. Text:='';

Edit6. Text:='';

showmessage ('Не корректная дата!!'); end;

end;

if mes = 7 then begin

if chislo > 31 then begin

Edit5. Text:='';

Edit6. Text:='';

showmessage ('Не корректная дата!!');

end;

end;

if mes = 8 then begin

if chislo > 31 then begin

Edit5. Text:='';

Edit6. Text:='';

showmessage ('Не корректная дата!!');

end;

end;

if mes = 9 then begin

if chislo > 30 then begin

Edit5. Text:='';

Edit6. Text:='';

showmessage ('Не корректная дата!!');

end;

end;

if mes = 10 then begin

if chislo > 31 then begin

Edit5. Text:='';

Edit6. Text:='';

showmessage ('Не корректная дата!!'); end;

end;

if mes = 11 then begin

if chislo > 30 then begin

Edit5. Text:='';

Edit6. Text:='';

showmessage ('Не корректная дата!!');

end;

end;

if mes = 12 then begin

if chislo > 31 then begin

Edit5. Text:='';

Edit6. Text:='';

showmessage ('Не корректная дата!!');

end;

end;

if mes > 12 then begin

Edit5. Text:='';

Edit6. Text:='';

showmessage ('Не корректная дата!!');

end;

end;

end.

Программа на С

#include<stdio.h>

#include<stdlib.h>

#include<string.h>

main (int argc, char *argv[])

{

int chislo, god, mes, dneivgodu, nn, n, ost, ost1, p;

puts («Введите число»);

printf(«==>»);

scanf («%d», &chislo);

puts («Введите месяц»);

printf(«==>»);

scanf («%d», &mes);

puts («Введите год»);

printf(«==>»);

scanf («%d», &god);

 //printf («Введенная дата: Число=%d, месяц=%d, год=%d\n», chislo, mes, god);

if ((god% 4 == 0) && ((god% 100!= 0) || (god% 400 == 0))) {

dneivgodu = 366;

}

if (god % 4!= 0) {

dneivgodu = 365;}

 //for (mes = 1; mes <= 12; mes++) {

switch (mes) {

case 1: n=chislo; break;

case 2: n=31+chislo; break;

if (dneivgodu!= 365) {

case 3: n=60+chislo; break;

case 4: n=91+chislo; break;

case 5: n=121+chislo; break;

case 6: n=152+chislo; break;

case 7: n=182+chislo; break;

case 8: n=213+chislo; break;

case 9: n=244+chislo; break;

case 10: n=274+chislo; break;

case 11: n=305+chislo; break;

case 12: n=335+chislo; break;

}

}

switch (mes) {

case 1: nn=chislo; break;

case 2: nn=31+chislo; break;

if (dneivgodu == 365) {

case 3: nn=59+chislo; break;

case 4: nn=90+chislo; break;

case 5: nn=120+chislo; break;

case 6: nn=151+chislo; break;

case 7: nn=181+chislo; break;

case 8: nn=212+chislo; break;

case 9: nn=243+chislo; break;

case 10: nn=273+chislo; break;

case 11: nn=304+chislo; break;

case 12: nn=334+chislo; break;

}

}

 //proverka na korrektnost

 // 1

if (mes == 1) {

if (chislo >31) {

puts («ne korrektnaya data!!»);

} p=1;}

 // 2

if (mes == 2) {

if (dneivgodu == 365) {

if (chislo > 28) {

puts («ne korrektnaya data!!»);

} p=1;}

if (dneivgodu == 366) {

if (chislo > 29) {

puts («ne korrektnaya data!!»);

}} p=1;}

 // 3

if (mes == 3) {

if (chislo > 31) {

puts («ne korrektnaya data!!»);

} p=1;}

 // 4

if (mes == 4) {

if (chislo > 30) {

puts («ne korrektnaya data!!»);

} p=1;}

 // 5

if (mes == 5) {

if (chislo > 31) {

puts («ne korrektnaya data!!»);

} p=1;}

 // 6

if (mes == 6) {

if (chislo > 30) {

puts («ne korrektnaya data!!»);

} p=1;}

 // 7

if (mes == 7) {

if (chislo > 31) {

puts («ne korrektnaya data!!»);

} p=1;}

 // 8

if (mes == 8) {

if (chislo > 31) {

puts («ne korrektnaya data!!»);

} p=1;}

 // 9

if (mes == 9) {

if (chislo > 30) {

puts («ne korrektnaya data!!»);

} p=1;}

 // 10

if (mes == 10) {

if (chislo > 31) {

puts («ne korrektnaya data!!»);

} p=1;}

 // 11

if (mes == 11) {

if (chislo > 30) {

puts («ne korrektnaya data!!»);

} p=1;}

 // 12

if (mes == 12) {

if (chislo > 31) {

puts («ne korrektnaya data!!»);

} p=1;}

if (dneivgodu!= 365) {

printf («dnei s nachala goda=%d\n», n);

ost = 366 - n;

printf («ostalos dnei do konca goda=%d\n», ost);}

if (dneivgodu == 365) {

printf («dnei s nachala goda=%d\n», nn);

ost1 = 365 - nn;

printf («ostalos dnei do konca goda=%d\n», ost1);}

exit(0);

}

4. Дано натуральное число n>99. Определить число сотен в нем

программа текст дата год

Программа на Delphi

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls;

type

TForm1 = class(TForm)

Edit1: TEdit;

Button1: TButton;

Edit2: TEdit;

Label1: TLabel;

Label2: TLabel;

Button2: TButton;

procedure Button1Click (Sender: TObject);

procedure Button2Click (Sender: TObject);

private

{Private declarations}

public

{Public declarations}

end;

var

Form1: TForm1;

n, b:integer;

implementation

{$R *.dfm}

procedure TForm1. Button1Click (Sender: TObject);

begin

n:=strtoint (Edit1.text);

if n < 99 then

begin

showmessage ('Введите n>99!');

Edit1. Text:='';

Edit2. Text:='';

end;

b:=n div 100;

Edit2. Text:=inttostr(b);

end;

procedure TForm1. Button2Click (Sender: TObject);

begin

Edit1. Text:='';

Edit2. Text:='';

end; end.

Программа на С

#include<stdio.h>

#include<stdlib.h>

#include<string.h>

main (int argc, char *argv[])

{

int n, chislo;

PUNKT1:

puts («Введите число n > 99»);

printf(«==>»);

scanf («%d», &n);

if (n < 99) {

printf («Введите n > 99!!!\n»);

goto PUNKT1;

}

chislo=n / 100;

printf («chislo soten =%d\n», chislo);

exit(0);

}

5. Даны два действительных числа а и b. Получить их сумму, разность и произведение

Программа на Delphi

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls;

type

TForm1 = class(TForm)

Edit1: TEdit;

Edit2: TEdit;

Button1: TButton;

Edit3: TEdit;

Edit4: TEdit;

Edit5: TEdit;

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

Label5: TLabel;

Button2: TButton;

procedure Button1Click (Sender: TObject);

procedure Button2Click (Sender: TObject);

private

{Private declarations}

public

{Public declarations}

end;

var

Form1: TForm1;

a, b, c, d, e:integer;

implementation

{$R *.dfm}

procedure TForm1. Button1Click (Sender: TObject);

begin

a:=strtoint (Edit1. Text);

b:=strtoint (Edit2. Text);

c:=a+b;

d:=a-b;

e:=a*b;

Edit3. Text:=inttostr(c);

Edit4. Text:=inttostr(d);

Edit5. Text:=inttostr(e);

end;

procedure TForm1. Button2Click (Sender: TObject);

begin

Edit1. Text:='';

Edit2. Text:='';

Edit3. Text:='';

Edit4. Text:='';

Edit5. Text:='';

end;

end.

Программа на С

#include<stdio.h>

#include<stdlib.h>

#include<string.h>

main (int argc, char *argv[])

{

int a, b, summa, raznost, proizvedenie;

puts («Введите число А»);

printf(«==>»);

scanf («%d», &a);

puts («Введите число B»);

printf(«==>»);

scanf («%d», &b);

printf («Введенные числа: a=%d, b=%d\n», a, b);

summa=a+b;

printf («summa=%d\n», summa);

raznost=a-b;

printf («raznost=%d\n», raznost);

proizvedenie=a*b;

printf («proizvedenie=%d\n», proizvedenie);

getchar();

exit(0);

}

В данной работе использовались такие языки, как Delphi, Pascal, C.

Размещено на Allbest.ru


Подобные документы

  • Решение задач с помощью языка программирования Delphi: вычисление значения функции Y от X; систем двух уравнений; прогрессий; последовательностей; вычисление числа с определенной точностью; перевод числа из десятичной в восьмеричную систему счисления.

    отчет по практике [83,8 K], добавлен 08.06.2010

  • Задания по основам программирования: написание программы, выводящей на экран приветствие автору; рассчитывающей параметры геометрической фигуры; по номеру года определяющей, является ли он високосным; находящей наименьший делитель введенного числа, и др.

    контрольная работа [2,1 M], добавлен 09.02.2016

  • Теоретические основы объектно-ориентированного языка программирования Delphi, изучение среды визуального проектирования приложений. Определение 40-го числа Фибоначчи, составление листинга и блок-схемы программы, тестирование ее на работоспособность.

    курсовая работа [261,1 K], добавлен 25.03.2015

  • Изучение общей структуры языка программирования Delphi: главные и дополнительные составные части среды программирования. Синтаксис и семантика языка программирования Delphi: алфавит языка, элементарные конструкции, переменные, константы и операторы.

    курсовая работа [738,1 K], добавлен 17.05.2010

  • Правила перевода данного числа из десятичной системы счисления в двоично-десятичную. Особенности шифрования текста с использованием таблицы ASCII-кодов. Прямой, обратный и дополнительный код числа как его восьмибитовое целое без знака и со знаком.

    методичка [217,9 K], добавлен 15.12.2009

  • Общая характеристика интерфейса языка программирования Delphi. Рассмотрение окна редактора кода, конструктора формы, инспектора объектов и расширения файлов. Ознакомление с основными этапами создания и сохранения простого приложения; проверка его работы.

    презентация [184,3 K], добавлен 18.03.2014

  • Особенности разработки приложений для операционной системы с помощью императивного, структурированного, объектно-ориентированного языка программирования Delphi. Формальное начало программы. Выделение конца программного блока. Листинг и описание программы.

    курсовая работа [1,2 M], добавлен 04.08.2014

  • Запись прямого и обратного кода для числа 10010 и -10010. Получение дополнительного кода числа для 16-разрядной ячейки. Перевод в двоичную систему счисления десятичных чисел: 10, 45, 7, 33. Запись в обратном и дополнительном кодах числа -67, -43, -89.

    практическая работа [13,7 K], добавлен 19.04.2011

  • Рассмотрение теории и технологии работы со средой программирования Delphi. Описание Описание интерфейса программы, структуры данных, генерации точек. Разработка задания по выявлению всех квадратов, которые могут быть образованы точками на плоскости.

    реферат [21,0 K], добавлен 13.01.2015

  • Способы сортировки задач программирования: пузырьком, пузырьковая с просеиванием, метод последовательного поиска минимумов, вставками. Распределяющая сортировка - RadixSort-цифровая - поразрядная. Теория чисел. Простые числа. Задача "Красивые числа".

    реферат [90,5 K], добавлен 14.05.2008

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.