Перевести код с Pascal - C (СИ) (73839)
Формулировка задачи:
Program Zavdanya_3; Uses crt; Type masiv=array[1..10000]of Integer; Var F,f1:file of integer; y,R:byte; Procedure Stvorenna_file (var F:file of integer); var x:integer; i,n:integer; Begin rewrite (F); Write ('Створенно файл з розмірністтю: '); read (n); For i:=1 To n Do Begin x:=Random(100)-50; Write (f,x); End; Close (F); writeln; write('Файл створено!'); End; Procedure Pereglad_file (var F:file of integer); var x:integer; Begin reset (F); Write ('Вміст файлу: '); While not eof(f) do begin read (f,x); write (x,' '); End; Writeln; Writeln; Write ('Файл прочитано повністю'); close (F); End; Procedure Dopovnenna_file (var F:file of integer); Var x,a,i:integer; Begin reset (f); seek (f,filesize(f)); write ('Введіть кількіть елементів на яку треба збільшити файл: '); Read (a); For i:=1 To a Do Begin x:=random(100)-50; write (F,x); End; close (f); end; Procedure Vulychenna_10 (var F:file of integer); Var Q:masiv; x:integer; a,b,c,i,v,p:integer; Begin i:=1; reset (f); While not eof(f) do begin Read (F,x); write(x,' '); If (x mod 7)=0 Then i:=i*x; End; writeln; if i=1 then writeln('Чисел кратних 7 немає') else writeln('Добуток: ',i); Close (F); End; Begin Assign (F,'Zavdanya_3.txt'); Repeat Write('--------------------------------------------------------------------------------'); Write (' Головне меню'); Writeln; Writeln ('1 - Створення файлу'); Writeln ('2 - Перегляд файлу'); Writeln ('3 - Доповнення Файлу'); Writeln ('4 - Вивести добудок чисел які кратні числу 7'); Writeln ('0 - Закінчить програму'); Write('--------------------------------------------------------------------------------'); Write ('Введіть один із пунктів головного меню: '); Read (r); Case r of 1:Stvorenna_file (F); 2:Pereglad_file (F); 3:Dopovnenna_file (f); 4:Vulychenna_10 (F); 0:Writeln ('Кінець програми'); End; Writeln; Until r=0; End.
помогите с переводом
Решение задачи: «Перевести код с Pascal»
textual
Листинг программы
#include <stdio.h> #include <stdlib.h> #include <time.h> char *filename = "Zavdanya_3.txt"; void create_file() { int x, i, n; FILE *F = fopen(filename, "w"); printf("Create file of size: "); scanf("%i", &n); for(i = 0; i < n; ++i) { x = rand() % 100 - 50; fprintf(F, "%i ", x); } fclose(F); printf("\nFile has been created succesfully\n"); } void reload_file() { int x; FILE *F = fopen(filename, "r"); printf("\nFile contents are: "); while(fscanf(F, "%i", &x) != EOF) { printf("%i ", x); } printf("\n\nFile has been readed successfully\n"); fclose(F); } void add_to_file() { int x,a,i; FILE *F = fopen(filename, "a"); printf("\nEnter number of ints to add: "); scanf("%i", &a); for(i = 0; i < a; ++i) { x=rand() % 100 - 50; fprintf(F, "%i ", x); } fclose(F); } void product() { int x, i = 1, f = 0; FILE *F = fopen(filename, "r"); printf("\n"); while(fscanf(F, "%i", &x) != EOF) { printf("%i ", x); if(x % 7 == 0) { f = 1; i*=x; } } if(f==0) printf("\nNo one of ints can be divided by 7\n"); else printf("\nProduct: %i\n", i); fclose(F); } int main() { int r; FILE *F = fopen("Zavdanya_3.txt", "r"); do { printf("-------------------------------------------------------------------------------\n"); printf(" Main menu\n"); printf("1 - Create file\n"); printf("2 - Show file contents\n"); printf("3 - Add to file\n"); printf("4 - Print product of ints which can be divided by 7\n"); printf("0 - End the program\n"); printf("-------------------------------------------------------------------------------\n"); printf("Print one of the menu: "); scanf("%i", &r); switch(r) { case 1: create_file(); break; case 2: reload_file(); break; case 3: add_to_file(); break; case 4: product(); break; case 0: printf("End of program\n"); break; default: break; } printf("\n"); } while(r!=0); }
Объяснение кода листинга программы
- Объявлены переменные:
- filename (строка, содержащая имя файла)
- x (целое число, используется в функциях create_file, reload_file, add_to_file)
- i (целое число, используется в функциях create_file, reload_file, add_to_file)
- n (целое число, используется в функции create_file)
- a (целое число, используется в функции add_to_file)
- r (целое число, используется в функции main)
- F (указатель на файл, используется во всех функциях, работающих с файлом)
- Функция create_file создает файл указанного размера:
- Создается файл с помощью функции fopen.
- С помощью функции scanf считывается размер файла.
- С помощью цикла for и функции rand создаются случайные числа от -50 до 50 и записываются в файл с помощью функции fprintf.
- Функция fclose закрывает файл.
- Выводится сообщение об успешном создании файла.
- Функция reload_file считывает содержимое файла:
- Файл открывается с помощью функции fopen.
- С помощью цикла while и функции fscanf считываются числа из файла.
- Каждое число выводится на экран с помощью функции printf.
- Файл закрывается с помощью функции fclose.
- Выводится сообщение об успешном чтении файла.
- Функция add_to_file добавляет числа в файл:
- Файл открывается с помощью функции fopen.
- С помощью функции scanf считывается количество чисел для добавления.
- С помощью цикла for создаются случайные числа от -50 до 50 и записываются в файл с помощью функции fprintf.
- Файл закрывается с помощью функции fclose.
- Функция product вычисляет произведение чисел, которые делятся на 7:
- Файл открывается с помощью функции fopen.
- С помощью цикла while считываются числа из файла.
- Если число делится на 7, то увеличивается счетчик и сохраняется текущее значение произведения.
- После окончания чтения файла выводится сообщение о том, что ни одно из чисел не может быть разделено на 7, или выводится произведение.
- В функции main реализован главный меню программы:
- Файл открывается с помощью функции fopen.
- С помощью цикла do-while выполняется меню:
- Выводится меню.
- С помощью функции scanf считывается выбор пользователя.
- В зависимости от выбора выполняется соответствующая функция.
- После окончания выполнения программы выводится сообщение об ее завершении.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д